diff --git a/spread.yaml b/spread.yaml index b7ac155b78..9f00b49587 100644 --- a/spread.yaml +++ b/spread.yaml @@ -263,6 +263,11 @@ suites: systems: - ubuntu-24.04* + tests/spread/core24-suites/plugins/: + summary: core24 plugin tests + systems: + - ubuntu-22.04* + # General, core suite tests/spread/general/: summary: tests of snapcraft core functionality diff --git a/tests/spread/core24-suites/plugins/build-and-run-hello/colcon-ros2-jazzy-hello/CMakeLists.txt b/tests/spread/core24-suites/plugins/build-and-run-hello/colcon-ros2-jazzy-hello/CMakeLists.txt new file mode 100644 index 0000000000..c014f3f36d --- /dev/null +++ b/tests/spread/core24-suites/plugins/build-and-run-hello/colcon-ros2-jazzy-hello/CMakeLists.txt @@ -0,0 +1,34 @@ +cmake_minimum_required(VERSION 3.5) +project(colcon_ros2_rlcpp_hello) + +# Default to C++14 +if(NOT CMAKE_CXX_STANDARD) + set(CMAKE_CXX_STANDARD 14) +endif() + +if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") + add_compile_options(-Wall -Wextra -Wpedantic) +endif() + +find_package(ament_cmake REQUIRED) +find_package(rclcpp REQUIRED) +find_package(rclcpp_components REQUIRED) +find_package(std_msgs REQUIRED) + +# This package installs libraries without exporting them. +# Export the library path to ensure that the installed libraries are available. +if(NOT WIN32) + ament_environment_hooks( + "${ament_cmake_package_templates_ENVIRONMENT_HOOK_LIBRARY_PATH}" + ) +endif() + +add_executable(colcon_ros2_rlcpp_hello src/hello.cpp) +target_link_libraries(colcon_ros2_rlcpp_hello) +ament_target_dependencies(colcon_ros2_rlcpp_hello rclcpp class_loader) + +install(TARGETS + colcon_ros2_rlcpp_hello + DESTINATION lib/${PROJECT_NAME}) + +ament_package() diff --git a/tests/spread/core24-suites/plugins/build-and-run-hello/colcon-ros2-jazzy-hello/package.xml b/tests/spread/core24-suites/plugins/build-and-run-hello/colcon-ros2-jazzy-hello/package.xml new file mode 100644 index 0000000000..0abc194155 --- /dev/null +++ b/tests/spread/core24-suites/plugins/build-and-run-hello/colcon-ros2-jazzy-hello/package.xml @@ -0,0 +1,24 @@ + + + + colcon_ros2_rlcpp_hello + 0.0.1 + snapcraft test for rlcpp + me + Apache License 2.0 + + ament_cmake + + rclcpp + rclcpp_components + std_msgs + fake_package_that_does_not_exists + + rclcpp + rclcpp_components + std_msgs + + + ament_cmake + + diff --git a/tests/spread/core24-suites/plugins/build-and-run-hello/colcon-ros2-jazzy-hello/snap/snapcraft.yaml b/tests/spread/core24-suites/plugins/build-and-run-hello/colcon-ros2-jazzy-hello/snap/snapcraft.yaml new file mode 100644 index 0000000000..3a7c849ce2 --- /dev/null +++ b/tests/spread/core24-suites/plugins/build-and-run-hello/colcon-ros2-jazzy-hello/snap/snapcraft.yaml @@ -0,0 +1,22 @@ +name: colcon-ros2-jazzy-hello +version: "1.0" +summary: hello world +description: | + A ROS2 rlcpp-based workspace. + +grade: stable +confinement: strict +base: core24 + +apps: + colcon-ros2-jazzy-hello: + command: opt/ros/jazzy/bin/ros2 run colcon_ros2_rlcpp_hello colcon_ros2_rlcpp_hello + plugs: [network, network-bind] + extensions: [ros2-jazzy] + +parts: + hello: + plugin: colcon + source: . + build-packages: [g++, make, vim] + stage-packages: [ros-jazzy-ros2run] diff --git a/tests/spread/core24-suites/plugins/build-and-run-hello/colcon-ros2-jazzy-hello/src/hello.cpp b/tests/spread/core24-suites/plugins/build-and-run-hello/colcon-ros2-jazzy-hello/src/hello.cpp new file mode 100644 index 0000000000..770203acec --- /dev/null +++ b/tests/spread/core24-suites/plugins/build-and-run-hello/colcon-ros2-jazzy-hello/src/hello.cpp @@ -0,0 +1,28 @@ +// Copyright 2016 Open Source Robotics Foundation, Inc. +// +// 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. + +#include +#include "rclcpp/rclcpp.hpp" + +int main(int argc, char * argv[]) +{ + rclcpp::init(argc, argv); + rclcpp::executors::SingleThreadedExecutor exec; + rclcpp::NodeOptions options; + + printf("hello world"); + + rclcpp::shutdown(); + return 0; +} diff --git a/tests/spread/core24-suites/plugins/build-and-run-hello/colcon-ros2-wrapper/CMakeLists.txt b/tests/spread/core24-suites/plugins/build-and-run-hello/colcon-ros2-wrapper/CMakeLists.txt new file mode 100644 index 0000000000..c014f3f36d --- /dev/null +++ b/tests/spread/core24-suites/plugins/build-and-run-hello/colcon-ros2-wrapper/CMakeLists.txt @@ -0,0 +1,34 @@ +cmake_minimum_required(VERSION 3.5) +project(colcon_ros2_rlcpp_hello) + +# Default to C++14 +if(NOT CMAKE_CXX_STANDARD) + set(CMAKE_CXX_STANDARD 14) +endif() + +if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") + add_compile_options(-Wall -Wextra -Wpedantic) +endif() + +find_package(ament_cmake REQUIRED) +find_package(rclcpp REQUIRED) +find_package(rclcpp_components REQUIRED) +find_package(std_msgs REQUIRED) + +# This package installs libraries without exporting them. +# Export the library path to ensure that the installed libraries are available. +if(NOT WIN32) + ament_environment_hooks( + "${ament_cmake_package_templates_ENVIRONMENT_HOOK_LIBRARY_PATH}" + ) +endif() + +add_executable(colcon_ros2_rlcpp_hello src/hello.cpp) +target_link_libraries(colcon_ros2_rlcpp_hello) +ament_target_dependencies(colcon_ros2_rlcpp_hello rclcpp class_loader) + +install(TARGETS + colcon_ros2_rlcpp_hello + DESTINATION lib/${PROJECT_NAME}) + +ament_package() diff --git a/tests/spread/core24-suites/plugins/build-and-run-hello/colcon-ros2-wrapper/package.xml b/tests/spread/core24-suites/plugins/build-and-run-hello/colcon-ros2-wrapper/package.xml new file mode 100644 index 0000000000..0abc194155 --- /dev/null +++ b/tests/spread/core24-suites/plugins/build-and-run-hello/colcon-ros2-wrapper/package.xml @@ -0,0 +1,24 @@ + + + + colcon_ros2_rlcpp_hello + 0.0.1 + snapcraft test for rlcpp + me + Apache License 2.0 + + ament_cmake + + rclcpp + rclcpp_components + std_msgs + fake_package_that_does_not_exists + + rclcpp + rclcpp_components + std_msgs + + + ament_cmake + + diff --git a/tests/spread/core24-suites/plugins/build-and-run-hello/colcon-ros2-wrapper/snap/snapcraft.yaml b/tests/spread/core24-suites/plugins/build-and-run-hello/colcon-ros2-wrapper/snap/snapcraft.yaml new file mode 100644 index 0000000000..4d9602fbc5 --- /dev/null +++ b/tests/spread/core24-suites/plugins/build-and-run-hello/colcon-ros2-wrapper/snap/snapcraft.yaml @@ -0,0 +1,22 @@ +name: colcon-ros2-wrapper +version: "1.0" +summary: hello world +description: | + A ROS2 rlcpp-based workspace. + +grade: stable +confinement: strict +base: core24 + +apps: + colcon-ros2-wrapper: + command: ros2 run colcon_ros2_rlcpp_hello colcon_ros2_rlcpp_hello + plugs: [network, network-bind] + extensions: [ros2-jazzy] + +parts: + hello: + plugin: colcon + source: . + build-packages: [g++, make, vim] + stage-packages: [ros-jazzy-ros2run] diff --git a/tests/spread/core24-suites/plugins/build-and-run-hello/colcon-ros2-wrapper/src/hello.cpp b/tests/spread/core24-suites/plugins/build-and-run-hello/colcon-ros2-wrapper/src/hello.cpp new file mode 100644 index 0000000000..770203acec --- /dev/null +++ b/tests/spread/core24-suites/plugins/build-and-run-hello/colcon-ros2-wrapper/src/hello.cpp @@ -0,0 +1,28 @@ +// Copyright 2016 Open Source Robotics Foundation, Inc. +// +// 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. + +#include +#include "rclcpp/rclcpp.hpp" + +int main(int argc, char * argv[]) +{ + rclcpp::init(argc, argv); + rclcpp::executors::SingleThreadedExecutor exec; + rclcpp::NodeOptions options; + + printf("hello world"); + + rclcpp::shutdown(); + return 0; +} diff --git a/tests/spread/core24-suites/plugins/build-and-run-hello/conda-hello/hello b/tests/spread/core24-suites/plugins/build-and-run-hello/conda-hello/hello new file mode 100755 index 0000000000..15525d46ed --- /dev/null +++ b/tests/spread/core24-suites/plugins/build-and-run-hello/conda-hello/hello @@ -0,0 +1,4 @@ +#!/usr/bin/env ipython3 + +print('hello world') + diff --git a/tests/spread/core24-suites/plugins/build-and-run-hello/conda-hello/snap/snapcraft.yaml b/tests/spread/core24-suites/plugins/build-and-run-hello/conda-hello/snap/snapcraft.yaml new file mode 100644 index 0000000000..51c798e9c5 --- /dev/null +++ b/tests/spread/core24-suites/plugins/build-and-run-hello/conda-hello/snap/snapcraft.yaml @@ -0,0 +1,25 @@ +name: conda-hello +version: '1.0' +summary: Hello world using ipython from conda packages +description: | + Leverage conda-packages to install ipython and use it to say "hello world". + +grade: devel +base: core24 +confinement: strict + +apps: + conda-hello: + command: + hello + +parts: + ipython: + plugin: conda + conda-miniconda-version: "py39_4.12.0" + conda-packages: + - ipython + conda-python-version: "3.9" + hello: + plugin: dump + source: . diff --git a/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/README.md b/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/README.md new file mode 100644 index 0000000000..2f699f48ac --- /dev/null +++ b/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/README.md @@ -0,0 +1,16 @@ +# flutter_hello + +A new Flutter project. + +## Getting Started + +This project is a starting point for a Flutter application. + +A few resources to get you started if this is your first Flutter project: + +- [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab) +- [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook) + +For help getting started with Flutter development, view the +[online documentation](https://docs.flutter.dev/), which offers tutorials, +samples, guidance on mobile development, and a full API reference. diff --git a/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/analysis_options.yaml b/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/analysis_options.yaml new file mode 100644 index 0000000000..61b6c4de17 --- /dev/null +++ b/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/analysis_options.yaml @@ -0,0 +1,29 @@ +# This file configures the analyzer, which statically analyzes Dart code to +# check for errors, warnings, and lints. +# +# The issues identified by the analyzer are surfaced in the UI of Dart-enabled +# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be +# invoked from the command line by running `flutter analyze`. + +# The following line activates a set of recommended lints for Flutter apps, +# packages, and plugins designed to encourage good coding practices. +include: package:flutter_lints/flutter.yaml + +linter: + # The lint rules applied to this project can be customized in the + # section below to disable rules from the `package:flutter_lints/flutter.yaml` + # included above or to enable additional rules. A list of all available lints + # and their documentation is published at + # https://dart-lang.github.io/linter/lints/index.html. + # + # Instead of disabling a lint rule for the entire project in the + # section below, it can also be suppressed for a single line of code + # or a specific dart file by using the `// ignore: name_of_lint` and + # `// ignore_for_file: name_of_lint` syntax on the line or in the file + # producing the lint. + rules: + # avoid_print: false # Uncomment to disable the `avoid_print` rule + # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule + +# Additional information about this file can be found at +# https://dart.dev/guides/language/analysis-options diff --git a/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/flutter_hello.iml b/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/flutter_hello.iml new file mode 100644 index 0000000000..0a2da097ac --- /dev/null +++ b/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/flutter_hello.iml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/lib/main.dart b/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/lib/main.dart new file mode 100644 index 0000000000..410f446451 --- /dev/null +++ b/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/lib/main.dart @@ -0,0 +1,115 @@ +import 'package:flutter/material.dart'; + +void main() { + runApp(const MyApp()); +} + +class MyApp extends StatelessWidget { + const MyApp({super.key}); + + // This widget is the root of your application. + @override + Widget build(BuildContext context) { + return MaterialApp( + title: 'Flutter Demo', + theme: ThemeData( + // This is the theme of your application. + // + // Try running your application with "flutter run". You'll see the + // application has a blue toolbar. Then, without quitting the app, try + // changing the primarySwatch below to Colors.green and then invoke + // "hot reload" (press "r" in the console where you ran "flutter run", + // or simply save your changes to "hot reload" in a Flutter IDE). + // Notice that the counter didn't reset back to zero; the application + // is not restarted. + primarySwatch: Colors.blue, + ), + home: const MyHomePage(title: 'hello world'), + ); + } +} + +class MyHomePage extends StatefulWidget { + const MyHomePage({super.key, required this.title}); + + // This widget is the home page of your application. It is stateful, meaning + // that it has a State object (defined below) that contains fields that affect + // how it looks. + + // This class is the configuration for the state. It holds the values (in this + // case the title) provided by the parent (in this case the App widget) and + // used by the build method of the State. Fields in a Widget subclass are + // always marked "final". + + final String title; + + @override + State createState() => _MyHomePageState(); +} + +class _MyHomePageState extends State { + int _counter = 0; + + void _incrementCounter() { + setState(() { + // This call to setState tells the Flutter framework that something has + // changed in this State, which causes it to rerun the build method below + // so that the display can reflect the updated values. If we changed + // _counter without calling setState(), then the build method would not be + // called again, and so nothing would appear to happen. + _counter++; + }); + } + + @override + Widget build(BuildContext context) { + // This method is rerun every time setState is called, for instance as done + // by the _incrementCounter method above. + // + // The Flutter framework has been optimized to make rerunning build methods + // fast, so that you can just rebuild anything that needs updating rather + // than having to individually change instances of widgets. + return Scaffold( + appBar: AppBar( + // Here we take the value from the MyHomePage object that was created by + // the App.build method, and use it to set our appbar title. + title: Text(widget.title), + ), + body: Center( + // Center is a layout widget. It takes a single child and positions it + // in the middle of the parent. + child: Column( + // Column is also a layout widget. It takes a list of children and + // arranges them vertically. By default, it sizes itself to fit its + // children horizontally, and tries to be as tall as its parent. + // + // Invoke "debug painting" (press "p" in the console, choose the + // "Toggle Debug Paint" action from the Flutter Inspector in Android + // Studio, or the "Toggle Debug Paint" command in Visual Studio Code) + // to see the wireframe for each widget. + // + // Column has various properties to control how it sizes itself and + // how it positions its children. Here we use mainAxisAlignment to + // center the children vertically; the main axis here is the vertical + // axis because Columns are vertical (the cross axis would be + // horizontal). + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const Text( + 'You have pushed the button this many times:', + ), + Text( + '$_counter', + style: Theme.of(context).textTheme.headlineSmall, + ), + ], + ), + ), + floatingActionButton: FloatingActionButton( + onPressed: _incrementCounter, + tooltip: 'Increment', + child: const Icon(Icons.add), + ), // This trailing comma makes auto-formatting nicer for build methods. + ); + } +} diff --git a/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/linux/.gitignore b/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/linux/.gitignore new file mode 100644 index 0000000000..d3896c9844 --- /dev/null +++ b/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/linux/.gitignore @@ -0,0 +1 @@ +flutter/ephemeral diff --git a/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/linux/CMakeLists.txt b/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/linux/CMakeLists.txt new file mode 100644 index 0000000000..12f2c270d1 --- /dev/null +++ b/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/linux/CMakeLists.txt @@ -0,0 +1,138 @@ +# Project-level configuration. +cmake_minimum_required(VERSION 3.10) +project(runner LANGUAGES CXX) + +# The name of the executable created for the application. Change this to change +# the on-disk name of your application. +set(BINARY_NAME "flutter_hello") +# The unique GTK application identifier for this application. See: +# https://wiki.gnome.org/HowDoI/ChooseApplicationID +set(APPLICATION_ID "com.example.flutter_hello") + +# Explicitly opt in to modern CMake behaviors to avoid warnings with recent +# versions of CMake. +cmake_policy(SET CMP0063 NEW) + +# Load bundled libraries from the lib/ directory relative to the binary. +set(CMAKE_INSTALL_RPATH "$ORIGIN/lib") + +# Root filesystem for cross-building. +if(FLUTTER_TARGET_PLATFORM_SYSROOT) + set(CMAKE_SYSROOT ${FLUTTER_TARGET_PLATFORM_SYSROOT}) + set(CMAKE_FIND_ROOT_PATH ${CMAKE_SYSROOT}) + set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) + set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) + set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) + set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) +endif() + +# Define build configuration options. +if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) + set(CMAKE_BUILD_TYPE "Debug" CACHE + STRING "Flutter build mode" FORCE) + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS + "Debug" "Profile" "Release") +endif() + +# Compilation settings that should be applied to most targets. +# +# Be cautious about adding new options here, as plugins use this function by +# default. In most cases, you should add new options to specific targets instead +# of modifying this function. +function(APPLY_STANDARD_SETTINGS TARGET) + target_compile_features(${TARGET} PUBLIC cxx_std_14) + target_compile_options(${TARGET} PRIVATE -Wall -Werror) + target_compile_options(${TARGET} PRIVATE "$<$>:-O3>") + target_compile_definitions(${TARGET} PRIVATE "$<$>:NDEBUG>") +endfunction() + +# Flutter library and tool build rules. +set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter") +add_subdirectory(${FLUTTER_MANAGED_DIR}) + +# System-level dependencies. +find_package(PkgConfig REQUIRED) +pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0) + +add_definitions(-DAPPLICATION_ID="${APPLICATION_ID}") + +# Define the application target. To change its name, change BINARY_NAME above, +# not the value here, or `flutter run` will no longer work. +# +# Any new source files that you add to the application should be added here. +add_executable(${BINARY_NAME} + "main.cc" + "my_application.cc" + "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" +) + +# Apply the standard set of build settings. This can be removed for applications +# that need different build settings. +apply_standard_settings(${BINARY_NAME}) + +# Add dependency libraries. Add any application-specific dependencies here. +target_link_libraries(${BINARY_NAME} PRIVATE flutter) +target_link_libraries(${BINARY_NAME} PRIVATE PkgConfig::GTK) + +# Run the Flutter tool portions of the build. This must not be removed. +add_dependencies(${BINARY_NAME} flutter_assemble) + +# Only the install-generated bundle's copy of the executable will launch +# correctly, since the resources must in the right relative locations. To avoid +# people trying to run the unbundled copy, put it in a subdirectory instead of +# the default top-level location. +set_target_properties(${BINARY_NAME} + PROPERTIES + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/intermediates_do_not_run" +) + +# Generated plugin build rules, which manage building the plugins and adding +# them to the application. +include(flutter/generated_plugins.cmake) + + +# === Installation === +# By default, "installing" just makes a relocatable bundle in the build +# directory. +set(BUILD_BUNDLE_DIR "${PROJECT_BINARY_DIR}/bundle") +if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE) +endif() + +# Start with a clean build bundle directory every time. +install(CODE " + file(REMOVE_RECURSE \"${BUILD_BUNDLE_DIR}/\") + " COMPONENT Runtime) + +set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data") +set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib") + +install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +foreach(bundled_library ${PLUGIN_BUNDLED_LIBRARIES}) + install(FILES "${bundled_library}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) +endforeach(bundled_library) + +# Fully re-copy the assets directory on each build to avoid having stale files +# from a previous install. +set(FLUTTER_ASSET_DIR_NAME "flutter_assets") +install(CODE " + file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\") + " COMPONENT Runtime) +install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}" + DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime) + +# Install the AOT library on non-Debug builds only. +if(NOT CMAKE_BUILD_TYPE MATCHES "Debug") + install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) +endif() diff --git a/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/linux/flutter/CMakeLists.txt b/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/linux/flutter/CMakeLists.txt new file mode 100644 index 0000000000..d5bd01648a --- /dev/null +++ b/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/linux/flutter/CMakeLists.txt @@ -0,0 +1,88 @@ +# This file controls Flutter-level build steps. It should not be edited. +cmake_minimum_required(VERSION 3.10) + +set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral") + +# Configuration provided via flutter tool. +include(${EPHEMERAL_DIR}/generated_config.cmake) + +# TODO: Move the rest of this into files in ephemeral. See +# https://github.com/flutter/flutter/issues/57146. + +# Serves the same purpose as list(TRANSFORM ... PREPEND ...), +# which isn't available in 3.10. +function(list_prepend LIST_NAME PREFIX) + set(NEW_LIST "") + foreach(element ${${LIST_NAME}}) + list(APPEND NEW_LIST "${PREFIX}${element}") + endforeach(element) + set(${LIST_NAME} "${NEW_LIST}" PARENT_SCOPE) +endfunction() + +# === Flutter Library === +# System-level dependencies. +find_package(PkgConfig REQUIRED) +pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0) +pkg_check_modules(GLIB REQUIRED IMPORTED_TARGET glib-2.0) +pkg_check_modules(GIO REQUIRED IMPORTED_TARGET gio-2.0) + +set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/libflutter_linux_gtk.so") + +# Published to parent scope for install step. +set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE) +set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE) +set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE) +set(AOT_LIBRARY "${PROJECT_DIR}/build/lib/libapp.so" PARENT_SCOPE) + +list(APPEND FLUTTER_LIBRARY_HEADERS + "fl_basic_message_channel.h" + "fl_binary_codec.h" + "fl_binary_messenger.h" + "fl_dart_project.h" + "fl_engine.h" + "fl_json_message_codec.h" + "fl_json_method_codec.h" + "fl_message_codec.h" + "fl_method_call.h" + "fl_method_channel.h" + "fl_method_codec.h" + "fl_method_response.h" + "fl_plugin_registrar.h" + "fl_plugin_registry.h" + "fl_standard_message_codec.h" + "fl_standard_method_codec.h" + "fl_string_codec.h" + "fl_value.h" + "fl_view.h" + "flutter_linux.h" +) +list_prepend(FLUTTER_LIBRARY_HEADERS "${EPHEMERAL_DIR}/flutter_linux/") +add_library(flutter INTERFACE) +target_include_directories(flutter INTERFACE + "${EPHEMERAL_DIR}" +) +target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}") +target_link_libraries(flutter INTERFACE + PkgConfig::GTK + PkgConfig::GLIB + PkgConfig::GIO +) +add_dependencies(flutter flutter_assemble) + +# === Flutter tool backend === +# _phony_ is a non-existent file to force this command to run every time, +# since currently there's no way to get a full input/output list from the +# flutter tool. +add_custom_command( + OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS} + ${CMAKE_CURRENT_BINARY_DIR}/_phony_ + COMMAND ${CMAKE_COMMAND} -E env + ${FLUTTER_TOOL_ENVIRONMENT} + "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.sh" + ${FLUTTER_TARGET_PLATFORM} ${CMAKE_BUILD_TYPE} + VERBATIM +) +add_custom_target(flutter_assemble DEPENDS + "${FLUTTER_LIBRARY}" + ${FLUTTER_LIBRARY_HEADERS} +) diff --git a/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/linux/flutter/generated_plugin_registrant.cc b/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/linux/flutter/generated_plugin_registrant.cc new file mode 100644 index 0000000000..e71a16d23d --- /dev/null +++ b/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/linux/flutter/generated_plugin_registrant.cc @@ -0,0 +1,11 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#include "generated_plugin_registrant.h" + + +void fl_register_plugins(FlPluginRegistry* registry) { +} diff --git a/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/linux/flutter/generated_plugin_registrant.h b/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/linux/flutter/generated_plugin_registrant.h new file mode 100644 index 0000000000..e0f0a47bc0 --- /dev/null +++ b/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/linux/flutter/generated_plugin_registrant.h @@ -0,0 +1,15 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#ifndef GENERATED_PLUGIN_REGISTRANT_ +#define GENERATED_PLUGIN_REGISTRANT_ + +#include + +// Registers Flutter plugins. +void fl_register_plugins(FlPluginRegistry* registry); + +#endif // GENERATED_PLUGIN_REGISTRANT_ diff --git a/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/linux/flutter/generated_plugins.cmake b/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/linux/flutter/generated_plugins.cmake new file mode 100644 index 0000000000..2e1de87a7e --- /dev/null +++ b/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/linux/flutter/generated_plugins.cmake @@ -0,0 +1,23 @@ +# +# Generated file, do not edit. +# + +list(APPEND FLUTTER_PLUGIN_LIST +) + +list(APPEND FLUTTER_FFI_PLUGIN_LIST +) + +set(PLUGIN_BUNDLED_LIBRARIES) + +foreach(plugin ${FLUTTER_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin}) + target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) + list(APPEND PLUGIN_BUNDLED_LIBRARIES $) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) +endforeach(plugin) + +foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) +endforeach(ffi_plugin) diff --git a/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/linux/main.cc b/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/linux/main.cc new file mode 100644 index 0000000000..e7c5c54370 --- /dev/null +++ b/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/linux/main.cc @@ -0,0 +1,6 @@ +#include "my_application.h" + +int main(int argc, char** argv) { + g_autoptr(MyApplication) app = my_application_new(); + return g_application_run(G_APPLICATION(app), argc, argv); +} diff --git a/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/linux/my_application.cc b/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/linux/my_application.cc new file mode 100644 index 0000000000..9e28713e54 --- /dev/null +++ b/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/linux/my_application.cc @@ -0,0 +1,104 @@ +#include "my_application.h" + +#include +#ifdef GDK_WINDOWING_X11 +#include +#endif + +#include "flutter/generated_plugin_registrant.h" + +struct _MyApplication { + GtkApplication parent_instance; + char** dart_entrypoint_arguments; +}; + +G_DEFINE_TYPE(MyApplication, my_application, GTK_TYPE_APPLICATION) + +// Implements GApplication::activate. +static void my_application_activate(GApplication* application) { + MyApplication* self = MY_APPLICATION(application); + GtkWindow* window = + GTK_WINDOW(gtk_application_window_new(GTK_APPLICATION(application))); + + // Use a header bar when running in GNOME as this is the common style used + // by applications and is the setup most users will be using (e.g. Ubuntu + // desktop). + // If running on X and not using GNOME then just use a traditional title bar + // in case the window manager does more exotic layout, e.g. tiling. + // If running on Wayland assume the header bar will work (may need changing + // if future cases occur). + gboolean use_header_bar = TRUE; +#ifdef GDK_WINDOWING_X11 + GdkScreen* screen = gtk_window_get_screen(window); + if (GDK_IS_X11_SCREEN(screen)) { + const gchar* wm_name = gdk_x11_screen_get_window_manager_name(screen); + if (g_strcmp0(wm_name, "GNOME Shell") != 0) { + use_header_bar = FALSE; + } + } +#endif + if (use_header_bar) { + GtkHeaderBar* header_bar = GTK_HEADER_BAR(gtk_header_bar_new()); + gtk_widget_show(GTK_WIDGET(header_bar)); + gtk_header_bar_set_title(header_bar, "flutter_hello"); + gtk_header_bar_set_show_close_button(header_bar, TRUE); + gtk_window_set_titlebar(window, GTK_WIDGET(header_bar)); + } else { + gtk_window_set_title(window, "flutter_hello"); + } + + gtk_window_set_default_size(window, 1280, 720); + gtk_widget_show(GTK_WIDGET(window)); + + g_autoptr(FlDartProject) project = fl_dart_project_new(); + fl_dart_project_set_dart_entrypoint_arguments(project, self->dart_entrypoint_arguments); + + FlView* view = fl_view_new(project); + gtk_widget_show(GTK_WIDGET(view)); + gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(view)); + + fl_register_plugins(FL_PLUGIN_REGISTRY(view)); + + gtk_widget_grab_focus(GTK_WIDGET(view)); +} + +// Implements GApplication::local_command_line. +static gboolean my_application_local_command_line(GApplication* application, gchar*** arguments, int* exit_status) { + MyApplication* self = MY_APPLICATION(application); + // Strip out the first argument as it is the binary name. + self->dart_entrypoint_arguments = g_strdupv(*arguments + 1); + + g_autoptr(GError) error = nullptr; + if (!g_application_register(application, nullptr, &error)) { + g_warning("Failed to register: %s", error->message); + *exit_status = 1; + return TRUE; + } + + g_application_activate(application); + *exit_status = 0; + + return TRUE; +} + +// Implements GObject::dispose. +static void my_application_dispose(GObject* object) { + MyApplication* self = MY_APPLICATION(object); + g_clear_pointer(&self->dart_entrypoint_arguments, g_strfreev); + G_OBJECT_CLASS(my_application_parent_class)->dispose(object); +} + +static void my_application_class_init(MyApplicationClass* klass) { + G_APPLICATION_CLASS(klass)->activate = my_application_activate; + G_APPLICATION_CLASS(klass)->local_command_line = my_application_local_command_line; + G_OBJECT_CLASS(klass)->dispose = my_application_dispose; +} + +static void my_application_init(MyApplication* self) {} + +MyApplication* my_application_new() { + return MY_APPLICATION(g_object_new(my_application_get_type(), + "application-id", APPLICATION_ID, + "flags", G_APPLICATION_NON_UNIQUE, + nullptr)); +} diff --git a/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/linux/my_application.h b/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/linux/my_application.h new file mode 100644 index 0000000000..72271d5e41 --- /dev/null +++ b/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/linux/my_application.h @@ -0,0 +1,18 @@ +#ifndef FLUTTER_MY_APPLICATION_H_ +#define FLUTTER_MY_APPLICATION_H_ + +#include + +G_DECLARE_FINAL_TYPE(MyApplication, my_application, MY, APPLICATION, + GtkApplication) + +/** + * my_application_new: + * + * Creates a new Flutter-based application. + * + * Returns: a new #MyApplication. + */ +MyApplication* my_application_new(); + +#endif // FLUTTER_MY_APPLICATION_H_ diff --git a/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/pubspec.lock b/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/pubspec.lock new file mode 100644 index 0000000000..0f3a736aea --- /dev/null +++ b/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/pubspec.lock @@ -0,0 +1,160 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + async: + dependency: transitive + description: + name: async + url: "https://pub.dartlang.org" + source: hosted + version: "2.9.0" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + characters: + dependency: transitive + description: + name: characters + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.1" + clock: + dependency: transitive + description: + name: clock + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.1" + collection: + dependency: transitive + description: + name: collection + url: "https://pub.dartlang.org" + source: hosted + version: "1.16.0" + cupertino_icons: + dependency: "direct main" + description: + name: cupertino_icons + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.5" + fake_async: + dependency: transitive + description: + name: fake_async + url: "https://pub.dartlang.org" + source: hosted + version: "1.3.1" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_lints: + dependency: "direct dev" + description: + name: flutter_lints + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.1" + flutter_test: + dependency: "direct dev" + description: flutter + source: sdk + version: "0.0.0" + lints: + dependency: transitive + description: + name: lints + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.1" + matcher: + dependency: transitive + description: + name: matcher + url: "https://pub.dartlang.org" + source: hosted + version: "0.12.12" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.5" + meta: + dependency: transitive + description: + name: meta + url: "https://pub.dartlang.org" + source: hosted + version: "1.8.0" + path: + dependency: transitive + description: + name: path + url: "https://pub.dartlang.org" + source: hosted + version: "1.8.2" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.99" + source_span: + dependency: transitive + description: + name: source_span + url: "https://pub.dartlang.org" + source: hosted + version: "1.9.0" + stack_trace: + dependency: transitive + description: + name: stack_trace + url: "https://pub.dartlang.org" + source: hosted + version: "1.10.0" + stream_channel: + dependency: transitive + description: + name: stream_channel + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + string_scanner: + dependency: transitive + description: + name: string_scanner + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.1" + term_glyph: + dependency: transitive + description: + name: term_glyph + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.1" + test_api: + dependency: transitive + description: + name: test_api + url: "https://pub.dartlang.org" + source: hosted + version: "0.4.12" + vector_math: + dependency: transitive + description: + name: vector_math + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.2" +sdks: + dart: ">=2.18.6 <3.0.0" diff --git a/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/pubspec.yaml b/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/pubspec.yaml new file mode 100644 index 0000000000..da4590f864 --- /dev/null +++ b/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/pubspec.yaml @@ -0,0 +1,91 @@ +name: flutter_hello +description: A new Flutter project. + +# The following line prevents the package from being accidentally published to +# pub.dev using `flutter pub publish`. This is preferred for private packages. +publish_to: 'none' # Remove this line if you wish to publish to pub.dev + +# The following defines the version and build number for your application. +# A version number is three numbers separated by dots, like 1.2.43 +# followed by an optional build number separated by a +. +# Both the version and the builder number may be overridden in flutter +# build by specifying --build-name and --build-number, respectively. +# In Android, build-name is used as versionName while build-number used as versionCode. +# Read more about Android versioning at https://developer.android.com/studio/publish/versioning +# In iOS, build-name is used as CFBundleShortVersionString while build-number is used as CFBundleVersion. +# Read more about iOS versioning at +# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html +# In Windows, build-name is used as the major, minor, and patch parts +# of the product and file versions while build-number is used as the build suffix. +version: 1.0.0+1 + +environment: + sdk: '>=2.18.6 <3.0.0' + +# Dependencies specify other packages that your package needs in order to work. +# To automatically upgrade your package dependencies to the latest versions +# consider running `flutter pub upgrade --major-versions`. Alternatively, +# dependencies can be manually updated by changing the version numbers below to +# the latest version available on pub.dev. To see which dependencies have newer +# versions available, run `flutter pub outdated`. +dependencies: + flutter: + sdk: flutter + + + # The following adds the Cupertino Icons font to your application. + # Use with the CupertinoIcons class for iOS style icons. + cupertino_icons: ^1.0.2 + +dev_dependencies: + flutter_test: + sdk: flutter + + # The "flutter_lints" package below contains a set of recommended lints to + # encourage good coding practices. The lint set provided by the package is + # activated in the `analysis_options.yaml` file located at the root of your + # package. See that file for information about deactivating specific lint + # rules and activating additional ones. + flutter_lints: ^2.0.0 + +# For information on the generic Dart part of this file, see the +# following page: https://dart.dev/tools/pub/pubspec + +# The following section is specific to Flutter packages. +flutter: + + # The following line ensures that the Material Icons font is + # included with your application, so that you can use the icons in + # the material Icons class. + uses-material-design: true + + # To add assets to your application, add an assets section, like this: + # assets: + # - images/a_dot_burr.jpeg + # - images/a_dot_ham.jpeg + + # An image asset can refer to one or more resolution-specific "variants", see + # https://flutter.dev/assets-and-images/#resolution-aware + + # For details regarding adding assets from package dependencies, see + # https://flutter.dev/assets-and-images/#from-packages + + # To add custom fonts to your application, add a fonts section here, + # in this "flutter" section. Each entry in this list should have a + # "family" key with the font family name, and a "fonts" key with a + # list giving the asset and other descriptors for the font. For + # example: + # fonts: + # - family: Schyler + # fonts: + # - asset: fonts/Schyler-Regular.ttf + # - asset: fonts/Schyler-Italic.ttf + # style: italic + # - family: Trajan Pro + # fonts: + # - asset: fonts/TrajanPro.ttf + # - asset: fonts/TrajanPro_Bold.ttf + # weight: 700 + # + # For details regarding fonts from package dependencies, + # see https://flutter.dev/custom-fonts/#from-packages diff --git a/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/snap/snapcraft.yaml b/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/snap/snapcraft.yaml new file mode 100644 index 0000000000..d7dc93723a --- /dev/null +++ b/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/snap/snapcraft.yaml @@ -0,0 +1,16 @@ +name: flutter-hello +version: "1.0" +summary: simple flutter application +description: build a flutter application using core24 +base: core24 +confinement: strict + +apps: + flutter-hello: + command: "flutter_hello" + extensions: [gnome] + +parts: + hello: + source: . + plugin: flutter diff --git a/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/test/widget_test.dart b/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/test/widget_test.dart new file mode 100644 index 0000000000..f5811219ce --- /dev/null +++ b/tests/spread/core24-suites/plugins/build-and-run-hello/flutter-hello/test/widget_test.dart @@ -0,0 +1,30 @@ +// This is a basic Flutter widget test. +// +// To perform an interaction with a widget in your test, use the WidgetTester +// utility in the flutter_test package. For example, you can send tap and scroll +// gestures. You can also use WidgetTester to find child widgets in the widget +// tree, read text, and verify that the values of widget properties are correct. + +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; + +import 'package:flutter_hello/main.dart'; + +void main() { + testWidgets('Counter increments smoke test', (WidgetTester tester) async { + // Build our app and trigger a frame. + await tester.pumpWidget(const MyApp()); + + // Verify that our counter starts at 0. + expect(find.text('0'), findsOneWidget); + expect(find.text('1'), findsNothing); + + // Tap the '+' icon and trigger a frame. + await tester.tap(find.byIcon(Icons.add)); + await tester.pump(); + + // Verify that our counter has incremented. + expect(find.text('0'), findsNothing); + expect(find.text('1'), findsOneWidget); + }); +} diff --git a/tests/spread/core24-suites/plugins/build-and-run-hello/maven-hello/pom.xml b/tests/spread/core24-suites/plugins/build-and-run-hello/maven-hello/pom.xml new file mode 100644 index 0000000000..49d3c519a9 --- /dev/null +++ b/tests/spread/core24-suites/plugins/build-and-run-hello/maven-hello/pom.xml @@ -0,0 +1,41 @@ + + 4.0.0 + com.example + hello + 1.0 + + hello + A test project + + + UTF-8 + 11 + + + + + + org.apache.maven.plugins + maven-jar-plugin + 3.1.0 + + + + true + lib/ + com.example.hello.Main + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.10.1 + + ${maven.compiler.release} + + + + + diff --git a/tests/spread/core24-suites/plugins/build-and-run-hello/maven-hello/snap/snapcraft.yaml b/tests/spread/core24-suites/plugins/build-and-run-hello/maven-hello/snap/snapcraft.yaml new file mode 100644 index 0000000000..7f2a7c94dc --- /dev/null +++ b/tests/spread/core24-suites/plugins/build-and-run-hello/maven-hello/snap/snapcraft.yaml @@ -0,0 +1,30 @@ +name: maven-hello +version: '1.0' +summary: A test project +description: | + A test project for the maven plugin. It says hello. + +grade: stable # must be 'stable' to release into candidate/stable channels +confinement: strict # use 'strict' once you have the right plugs and slots +base: core24 + +lint: + ignore: + - library: + - usr/lib/jvm/java-*/lib/*.so + +apps: + maven-hello: + command: bin/java -jar $SNAP/jar/hello-1.0.jar + +parts: + hello: + plugin: maven + source: . + build-packages: + - openjdk-11-jre-headless + - maven + stage-packages: + - openjdk-11-jre-headless + prime: + - -usr/lib/jvm/java-11-openjdk-*/lib/security/blacklisted.certs diff --git a/tests/spread/core24-suites/plugins/build-and-run-hello/maven-hello/src/main/java/com/example/hello/Main.java b/tests/spread/core24-suites/plugins/build-and-run-hello/maven-hello/src/main/java/com/example/hello/Main.java new file mode 100644 index 0000000000..059c72e6f8 --- /dev/null +++ b/tests/spread/core24-suites/plugins/build-and-run-hello/maven-hello/src/main/java/com/example/hello/Main.java @@ -0,0 +1,8 @@ +package com.example.hello; + + +public class Main { + public static void main(String[] args) { + System.out.println("hello world"); + } +} diff --git a/tests/spread/core24/npm-reentrant/hello.js b/tests/spread/core24-suites/plugins/build-and-run-hello/npm-hello/hello.js similarity index 100% rename from tests/spread/core24/npm-reentrant/hello.js rename to tests/spread/core24-suites/plugins/build-and-run-hello/npm-hello/hello.js diff --git a/tests/spread/core24/npm-reentrant/package-lock.json b/tests/spread/core24-suites/plugins/build-and-run-hello/npm-hello/package-lock.json similarity index 100% rename from tests/spread/core24/npm-reentrant/package-lock.json rename to tests/spread/core24-suites/plugins/build-and-run-hello/npm-hello/package-lock.json diff --git a/tests/spread/core24/npm-reentrant/package.json b/tests/spread/core24-suites/plugins/build-and-run-hello/npm-hello/package.json similarity index 100% rename from tests/spread/core24/npm-reentrant/package.json rename to tests/spread/core24-suites/plugins/build-and-run-hello/npm-hello/package.json diff --git a/tests/spread/core24/npm-reentrant/snap/snapcraft.yaml b/tests/spread/core24-suites/plugins/build-and-run-hello/npm-hello/snap/snapcraft.yaml similarity index 74% rename from tests/spread/core24/npm-reentrant/snap/snapcraft.yaml rename to tests/spread/core24-suites/plugins/build-and-run-hello/npm-hello/snap/snapcraft.yaml index 7a75149e72..7b1d7f41fa 100644 --- a/tests/spread/core24/npm-reentrant/snap/snapcraft.yaml +++ b/tests/spread/core24-suites/plugins/build-and-run-hello/npm-hello/snap/snapcraft.yaml @@ -1,4 +1,4 @@ -name: npm-reentrant +name: npm-hello version: "1.0" summary: test the npm plugin description: Check that the npm plugin works across snapcraft calls @@ -7,6 +7,12 @@ confinement: strict grade: devel base: core24 +apps: + npm-hello: + command: bin/npm-hello + plugs: + - network + parts: hello: source: . diff --git a/tests/spread/core24-suites/plugins/build-and-run-hello/poetry-hello/snap/snapcraft.yaml b/tests/spread/core24-suites/plugins/build-and-run-hello/poetry-hello/snap/snapcraft.yaml new file mode 100644 index 0000000000..c72b767cc9 --- /dev/null +++ b/tests/spread/core24-suites/plugins/build-and-run-hello/poetry-hello/snap/snapcraft.yaml @@ -0,0 +1,15 @@ +name: poetry-hello +version: "1.0" +summary: simple python application +description: build a python application using core24 +base: core24 +confinement: strict + +apps: + poetry-hello: + command: bin/hello + +parts: + hello: + plugin: poetry + source: src diff --git a/tests/spread/core24-suites/plugins/build-and-run-hello/poetry-hello/src/hello/__init__.py b/tests/spread/core24-suites/plugins/build-and-run-hello/poetry-hello/src/hello/__init__.py new file mode 100644 index 0000000000..e3095b2229 --- /dev/null +++ b/tests/spread/core24-suites/plugins/build-and-run-hello/poetry-hello/src/hello/__init__.py @@ -0,0 +1,2 @@ +def main(): + print("hello world") diff --git a/tests/spread/core24/python-hello/poetry/src/pyproject.toml b/tests/spread/core24-suites/plugins/build-and-run-hello/poetry-hello/src/pyproject.toml similarity index 100% rename from tests/spread/core24/python-hello/poetry/src/pyproject.toml rename to tests/spread/core24-suites/plugins/build-and-run-hello/poetry-hello/src/pyproject.toml diff --git a/tests/spread/core24-suites/plugins/build-and-run-hello/python-hello/snap/snapcraft.yaml b/tests/spread/core24-suites/plugins/build-and-run-hello/python-hello/snap/snapcraft.yaml new file mode 100644 index 0000000000..cec936b84d --- /dev/null +++ b/tests/spread/core24-suites/plugins/build-and-run-hello/python-hello/snap/snapcraft.yaml @@ -0,0 +1,16 @@ +name: python-hello +version: "1.0" +summary: simple python application +description: build a python application using core24 +base: core24 +confinement: strict + +apps: + python-hello: + command: bin/hello + extensions: [gnome] + +parts: + hello: + plugin: python + source: src diff --git a/tests/spread/core24-suites/plugins/build-and-run-hello/python-hello/src/hello/__init__.py b/tests/spread/core24-suites/plugins/build-and-run-hello/python-hello/src/hello/__init__.py new file mode 100644 index 0000000000..e3095b2229 --- /dev/null +++ b/tests/spread/core24-suites/plugins/build-and-run-hello/python-hello/src/hello/__init__.py @@ -0,0 +1,2 @@ +def main(): + print("hello world") diff --git a/tests/spread/core24/python-hello/src/setup.py b/tests/spread/core24-suites/plugins/build-and-run-hello/python-hello/src/setup.py similarity index 100% rename from tests/spread/core24/python-hello/src/setup.py rename to tests/spread/core24-suites/plugins/build-and-run-hello/python-hello/src/setup.py diff --git a/tests/spread/core24-suites/plugins/build-and-run-hello/qmake-hello/hello.c b/tests/spread/core24-suites/plugins/build-and-run-hello/qmake-hello/hello.c new file mode 100644 index 0000000000..7ac070b52c --- /dev/null +++ b/tests/spread/core24-suites/plugins/build-and-run-hello/qmake-hello/hello.c @@ -0,0 +1,7 @@ +#include + +int main() +{ + printf("hello world\n"); + return 0; +} diff --git a/tests/spread/core24-suites/plugins/build-and-run-hello/qmake-hello/hello.pro b/tests/spread/core24-suites/plugins/build-and-run-hello/qmake-hello/hello.pro new file mode 100644 index 0000000000..1dc9da55e0 --- /dev/null +++ b/tests/spread/core24-suites/plugins/build-and-run-hello/qmake-hello/hello.pro @@ -0,0 +1,4 @@ +CONFIG = console release +SOURCES += hello.c +target.path = /bin/ +INSTALLS += target diff --git a/tests/spread/core24-suites/plugins/build-and-run-hello/qmake-hello/snap/snapcraft.yaml b/tests/spread/core24-suites/plugins/build-and-run-hello/qmake-hello/snap/snapcraft.yaml new file mode 100644 index 0000000000..2e41af9215 --- /dev/null +++ b/tests/spread/core24-suites/plugins/build-and-run-hello/qmake-hello/snap/snapcraft.yaml @@ -0,0 +1,22 @@ +name: qmake-hello +version: "1.0" +summary: test the qmake plugin +description: | + This is a basic qmake snap. It just prints a hello world. + If you want to add other functionalities to this snap, please don't. + Make a new one. + +grade: devel +base: core24 +confinement: strict + +apps: + qmake-hello: + command: bin/hello + +parts: + hello: + plugin: qmake + qmake-parameters: + - -Wall + source: . diff --git a/tests/spread/core24-suites/plugins/build-and-run-hello/task.yaml b/tests/spread/core24-suites/plugins/build-and-run-hello/task.yaml new file mode 100644 index 0000000000..ccd32d7f3c --- /dev/null +++ b/tests/spread/core24-suites/plugins/build-and-run-hello/task.yaml @@ -0,0 +1,109 @@ +summary: >- + Build, clean, build, modify and rebuild, and run hello + with different plugin configurations + +environment: + SNAPCRAFT_BUILD_ENVIRONMENT: "" + # ros extensions for core24 are still experimental + SNAPCRAFT_ENABLE_EXPERIMENTAL_EXTENSIONS: "1" + SNAP/conda: conda-hello + SNAP/colcon_ros2_jazzy: colcon-ros2-jazzy-hello + SNAP/colcon_ros2_wrapper: colcon-ros2-wrapper + SNAP/flutter: flutter-hello + SNAP/npm: npm-hello + # https://github.com/canonical/snapcraft/issues/5207 + # SNAP/python: python-hello + SNAP/poetry: poetry-hello + SNAP/qmake: qmake-hello + SNAP/maven: maven-hello + +prepare: | + #shellcheck source=tests/spread/tools/package-utils.sh + . "$TOOLS_DIR/package-utils.sh" + create_dpkg_restore_point + +restore: | + cd "${SNAP}" + snapcraft clean + rm -f ./*.snap + + # Undo changes to hello + [ -f hello ] && git checkout hello + [ -f hello.c ] && git checkout hello.c + [ -f hello.cs ] && git checkout hello.cs + [ -f subdir/hello.c ] && git checkout subdir/hello.c + [ -f hello.js ] && git checkout hello.js + [ -f main.go ] && git checkout main.go + [ -f src/hello.cpp ] && git checkout src/hello.cpp + [ -f src/main.rs ] && git checkout src/main.rs + [ -f lib/src/lib.rs ] && git checkout lib/src/lib.rs + [ -f lib/main.dart ] && git checkout lib/main.dart + + #shellcheck source=tests/spread/tools/package-utils.sh + . "$TOOLS_DIR/package-utils.sh" + dpkg_restore_point + +execute: | + cd "${SNAP}" + + # Make sure expand-extensions works + snapcraft expand-extensions + + # Ensure we can run individual plugin steps + snapcraft pull + snapcraft build + + # Build what we have and verify the snap runs as expected. + snapcraft + snap install "${SNAP}"_1.0_*.snap --dangerous + + if [ "${SNAP}" != "flutter-hello" ]; then + [ "$($SNAP)" = "hello world" ] + fi + + # Clean the hello part, then build and run again. + snapcraft clean hello + snapcraft + snap install "${SNAP}"_1.0_*.snap --dangerous + + if [ "${SNAP}" != "flutter-hello" ]; then + [ "$($SNAP)" = "hello world" ] + fi + + # Make sure that what we built runs with the changes applied. + if [ -f hello ]; then + modified_file=hello + elif [ -f hello.c ]; then + modified_file=hello.c + elif [ -f hello.cs ]; then + modified_file=hello.cs + elif [ -f subdir/hello.c ]; then + modified_file=subdir/hello.c + elif [ -f hello.js ]; then + modified_file=hello.js + elif [ -f main.go ]; then + modified_file=main.go + elif [ -f src/hello.cpp ]; then + modified_file=src/hello.cpp + elif [ -f src/main.rs ]; then + modified_file=src/main.rs + elif [ -f say/src/lib.rs ]; then + modified_file=say/src/lib.rs + elif [ -f lib/main.dart ]; then + modified_file=lib/main.dart + elif [ -f src/hello/__init__.py ]; then + modified_file=src/hello/__init__.py + elif [ -f src/main/java/com/example/hello/Main.java ]; then + modified_file=src/main/java/com/example/hello/Main.java + else + FATAL "Cannot setup ${SNAP} for rebuilding" + fi + + sed -i "${modified_file}" -e 's/hello world/hello rebuilt world/' + + snapcraft + snap install "${SNAP}"_1.0_*.snap --dangerous + + if [ "${SNAP}" != "flutter-hello" ]; then + [ "$($SNAP)" = "hello rebuilt world" ] + fi diff --git a/tests/spread/core24-suites/plugins/colcon-msg-package/colcon-msg-package/snap/snapcraft.yaml b/tests/spread/core24-suites/plugins/colcon-msg-package/colcon-msg-package/snap/snapcraft.yaml new file mode 100644 index 0000000000..27733e0722 --- /dev/null +++ b/tests/spread/core24-suites/plugins/colcon-msg-package/colcon-msg-package/snap/snapcraft.yaml @@ -0,0 +1,24 @@ +name: colcon-msg-package +version: "1.0" +summary: snapcraft test +description: | + Make sure ROS downloaded packages are properly sourced + +grade: stable +confinement: strict +base: core24 + +apps: + colcon-msg-package: + command: opt/ros/humble/bin/rosidl + plugs: [network, network-bind] + extensions: [ros2-humble] + +parts: + test-part: + plugin: colcon + source: https://github.com/ros2/demos.git + source-branch: humble + source-subdir: pendulum_msgs + build-packages: [g++, make] + diff --git a/tests/spread/core24-suites/plugins/colcon-msg-package/task.yaml b/tests/spread/core24-suites/plugins/colcon-msg-package/task.yaml new file mode 100644 index 0000000000..68c90f7246 --- /dev/null +++ b/tests/spread/core24-suites/plugins/colcon-msg-package/task.yaml @@ -0,0 +1,44 @@ +summary: >- + Make sure ROS downloaded packages are properly sourced + +kill-timeout: 180m + +environment: + SNAP/colcon_msg_package: colcon-msg-package + +systems: + - ubuntu-22.04 + - ubuntu-22.04-64 + - ubuntu-22.04-amd64 + - ubuntu-22.04-arm64 + +prepare: | + #shellcheck source=tests/spread/tools/snapcraft-yaml.sh + . "$TOOLS_DIR/snapcraft-yaml.sh" + set_base "$SNAP/snap/snapcraft.yaml" + + #shellcheck source=tests/spread/tools/package-utils.sh + . "$TOOLS_DIR/package-utils.sh" + create_dpkg_restore_point + +restore: | + cd "$SNAP" + snapcraft clean + rm -f ./*.snap + + #shellcheck source=tests/spread/tools/snapcraft-yaml.sh + . "$TOOLS_DIR/snapcraft-yaml.sh" + restore_yaml "snap/snapcraft.yaml" + + #shellcheck source=tests/spread/tools/package-utils.sh + . "$TOOLS_DIR/package-utils.sh" + dpkg_restore_point + +execute: | + cd "$SNAP" + + # Build the snap and verify that a message only package could be build + snapcraft + [ -d parts/test-part/install/opt/ros/snap/share/pendulum_msgs ] + + snap install "${SNAP}"_1.0_*.snap --dangerous diff --git a/tests/spread/core24-suites/plugins/colcon-packages-ignore/colcon-packages-ignore/snap/snapcraft.yaml b/tests/spread/core24-suites/plugins/colcon-packages-ignore/colcon-packages-ignore/snap/snapcraft.yaml new file mode 100644 index 0000000000..df2d133b6e --- /dev/null +++ b/tests/spread/core24-suites/plugins/colcon-packages-ignore/colcon-packages-ignore/snap/snapcraft.yaml @@ -0,0 +1,27 @@ +name: colcon-packages-ignore +version: "1.0" +summary: snapcraft test +description: | + Exercise colcon-packages-ignore/colcon-packages-select options. + +grade: stable +confinement: strict +base: core24 + +apps: + colcon-packages-ignore: + command: opt/ros/snap/lib/package1/package1 + plugs: [network, network-bind] + extensions: [ros2-humble] + +parts: + test-part: + plugin: colcon + source: . + build-packages: [g++, make] + + # By default, all packages in the workspace will be built. + # Request that package1 & package2 is build. + colcon-packages: [package1, package2] + # Request that package2 is ignored. + colcon-packages-ignore: [package2] diff --git a/tests/spread/core24-suites/plugins/colcon-packages-ignore/colcon-packages-ignore/src/package1/CMakeLists.txt b/tests/spread/core24-suites/plugins/colcon-packages-ignore/colcon-packages-ignore/src/package1/CMakeLists.txt new file mode 100644 index 0000000000..a54247c6f1 --- /dev/null +++ b/tests/spread/core24-suites/plugins/colcon-packages-ignore/colcon-packages-ignore/src/package1/CMakeLists.txt @@ -0,0 +1,34 @@ +cmake_minimum_required(VERSION 3.5) +project(package1) + +# Default to C++14 +if(NOT CMAKE_CXX_STANDARD) + set(CMAKE_CXX_STANDARD 14) +endif() + +if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") + add_compile_options(-Wall -Wextra -Wpedantic) +endif() + +find_package(ament_cmake REQUIRED) +find_package(rclcpp REQUIRED) +find_package(rclcpp_components REQUIRED) +find_package(std_msgs REQUIRED) + +# This package installs libraries without exporting them. +# Export the library path to ensure that the installed libraries are available. +if(NOT WIN32) + ament_environment_hooks( + "${ament_cmake_package_templates_ENVIRONMENT_HOOK_LIBRARY_PATH}" + ) +endif() + +add_executable(${PROJECT_NAME} src/hello.cpp) +target_link_libraries(${PROJECT_NAME}) +ament_target_dependencies(${PROJECT_NAME} rclcpp class_loader) + +install(TARGETS + ${PROJECT_NAME} + DESTINATION lib/${PROJECT_NAME}) + +ament_package() diff --git a/tests/spread/core24-suites/plugins/colcon-packages-ignore/colcon-packages-ignore/src/package1/package.xml b/tests/spread/core24-suites/plugins/colcon-packages-ignore/colcon-packages-ignore/src/package1/package.xml new file mode 100644 index 0000000000..01b1c71dea --- /dev/null +++ b/tests/spread/core24-suites/plugins/colcon-packages-ignore/colcon-packages-ignore/src/package1/package.xml @@ -0,0 +1,19 @@ + + + + package1 + 0.0.1 + snapcraft test + me + GPLv3 + + ament_cmake + + rclcpp + rclcpp_components + std_msgs + + + ament_cmake + + diff --git a/tests/spread/core24-suites/plugins/colcon-packages-ignore/colcon-packages-ignore/src/package1/src/hello.cpp b/tests/spread/core24-suites/plugins/colcon-packages-ignore/colcon-packages-ignore/src/package1/src/hello.cpp new file mode 100644 index 0000000000..0c05a2710f --- /dev/null +++ b/tests/spread/core24-suites/plugins/colcon-packages-ignore/colcon-packages-ignore/src/package1/src/hello.cpp @@ -0,0 +1,28 @@ +// Copyright (C) 2020 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 3 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, see . + +#include +#include "rclcpp/rclcpp.hpp" + +int main(int argc, char * argv[]) +{ + rclcpp::init(argc, argv); + rclcpp::executors::SingleThreadedExecutor exec; + rclcpp::NodeOptions options; + + printf("I am package1"); + + rclcpp::shutdown(); + return 0; +} diff --git a/tests/spread/core24-suites/plugins/colcon-packages-ignore/colcon-packages-ignore/src/package2/CMakeLists.txt b/tests/spread/core24-suites/plugins/colcon-packages-ignore/colcon-packages-ignore/src/package2/CMakeLists.txt new file mode 100644 index 0000000000..9eaffbf394 --- /dev/null +++ b/tests/spread/core24-suites/plugins/colcon-packages-ignore/colcon-packages-ignore/src/package2/CMakeLists.txt @@ -0,0 +1,34 @@ +cmake_minimum_required(VERSION 3.5) +project(package2) + +# Default to C++14 +if(NOT CMAKE_CXX_STANDARD) + set(CMAKE_CXX_STANDARD 14) +endif() + +if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") + add_compile_options(-Wall -Wextra -Wpedantic) +endif() + +find_package(ament_cmake REQUIRED) +find_package(rclcpp REQUIRED) +find_package(rclcpp_components REQUIRED) +find_package(std_msgs REQUIRED) + +# This package installs libraries without exporting them. +# Export the library path to ensure that the installed libraries are available. +if(NOT WIN32) + ament_environment_hooks( + "${ament_cmake_package_templates_ENVIRONMENT_HOOK_LIBRARY_PATH}" + ) +endif() + +add_executable(${PROJECT_NAME} src/hello.cpp) +target_link_libraries(${PROJECT_NAME}) +ament_target_dependencies(${PROJECT_NAME} rclcpp class_loader) + +install(TARGETS + ${PROJECT_NAME} + DESTINATION lib/${PROJECT_NAME}) + +ament_package() diff --git a/tests/spread/core24-suites/plugins/colcon-packages-ignore/colcon-packages-ignore/src/package2/package.xml b/tests/spread/core24-suites/plugins/colcon-packages-ignore/colcon-packages-ignore/src/package2/package.xml new file mode 100644 index 0000000000..a193342e83 --- /dev/null +++ b/tests/spread/core24-suites/plugins/colcon-packages-ignore/colcon-packages-ignore/src/package2/package.xml @@ -0,0 +1,19 @@ + + + + package2 + 0.0.1 + snapcraft test + me + GPLv3 + + ament_cmake + + rclcpp + rclcpp_components + std_msgs + + + ament_cmake + + diff --git a/tests/spread/core24-suites/plugins/colcon-packages-ignore/colcon-packages-ignore/src/package2/src/hello.cpp b/tests/spread/core24-suites/plugins/colcon-packages-ignore/colcon-packages-ignore/src/package2/src/hello.cpp new file mode 100644 index 0000000000..481efb1d0c --- /dev/null +++ b/tests/spread/core24-suites/plugins/colcon-packages-ignore/colcon-packages-ignore/src/package2/src/hello.cpp @@ -0,0 +1,28 @@ +// Copyright (C) 2020 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 3 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, see . + +#include +#include "rclcpp/rclcpp.hpp" + +int main(int argc, char * argv[]) +{ + rclcpp::init(argc, argv); + rclcpp::executors::SingleThreadedExecutor exec; + rclcpp::NodeOptions options; + + printf("I am package2"); + + rclcpp::shutdown(); + return 0; +} diff --git a/tests/spread/core24-suites/plugins/colcon-packages-ignore/colcon-packages-ignore/src/package3/CMakeLists.txt b/tests/spread/core24-suites/plugins/colcon-packages-ignore/colcon-packages-ignore/src/package3/CMakeLists.txt new file mode 100644 index 0000000000..4df6d1d4dc --- /dev/null +++ b/tests/spread/core24-suites/plugins/colcon-packages-ignore/colcon-packages-ignore/src/package3/CMakeLists.txt @@ -0,0 +1,34 @@ +cmake_minimum_required(VERSION 3.5) +project(package3) + +# Default to C++14 +if(NOT CMAKE_CXX_STANDARD) + set(CMAKE_CXX_STANDARD 14) +endif() + +if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") + add_compile_options(-Wall -Wextra -Wpedantic) +endif() + +find_package(ament_cmake REQUIRED) +find_package(rclcpp REQUIRED) +find_package(rclcpp_components REQUIRED) +find_package(std_msgs REQUIRED) + +# This package installs libraries without exporting them. +# Export the library path to ensure that the installed libraries are available. +if(NOT WIN32) + ament_environment_hooks( + "${ament_cmake_package_templates_ENVIRONMENT_HOOK_LIBRARY_PATH}" + ) +endif() + +add_executable(${PROJECT_NAME} src/hello.cpp) +target_link_libraries(${PROJECT_NAME}) +ament_target_dependencies(${PROJECT_NAME} rclcpp class_loader) + +install(TARGETS + ${PROJECT_NAME} + DESTINATION lib/${PROJECT_NAME}) + +ament_package() diff --git a/tests/spread/core24-suites/plugins/colcon-packages-ignore/colcon-packages-ignore/src/package3/package.xml b/tests/spread/core24-suites/plugins/colcon-packages-ignore/colcon-packages-ignore/src/package3/package.xml new file mode 100644 index 0000000000..a9b80e26a0 --- /dev/null +++ b/tests/spread/core24-suites/plugins/colcon-packages-ignore/colcon-packages-ignore/src/package3/package.xml @@ -0,0 +1,19 @@ + + + + package3 + 0.0.1 + snapcraft test + me + GPLv3 + + ament_cmake + + rclcpp + rclcpp_components + std_msgs + + + ament_cmake + + diff --git a/tests/spread/core24-suites/plugins/colcon-packages-ignore/colcon-packages-ignore/src/package3/src/hello.cpp b/tests/spread/core24-suites/plugins/colcon-packages-ignore/colcon-packages-ignore/src/package3/src/hello.cpp new file mode 100644 index 0000000000..481efb1d0c --- /dev/null +++ b/tests/spread/core24-suites/plugins/colcon-packages-ignore/colcon-packages-ignore/src/package3/src/hello.cpp @@ -0,0 +1,28 @@ +// Copyright (C) 2020 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 3 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, see . + +#include +#include "rclcpp/rclcpp.hpp" + +int main(int argc, char * argv[]) +{ + rclcpp::init(argc, argv); + rclcpp::executors::SingleThreadedExecutor exec; + rclcpp::NodeOptions options; + + printf("I am package2"); + + rclcpp::shutdown(); + return 0; +} diff --git a/tests/spread/core24-suites/plugins/colcon-packages-ignore/task.yaml b/tests/spread/core24-suites/plugins/colcon-packages-ignore/task.yaml new file mode 100644 index 0000000000..61cbfe0ed7 --- /dev/null +++ b/tests/spread/core24-suites/plugins/colcon-packages-ignore/task.yaml @@ -0,0 +1,48 @@ +summary: >- + Exercise the colcon-packages/colcon-packages-ignore options of colcon plugin + +kill-timeout: 180m + +environment: + SNAP/colcon_packages_ignore: colcon-packages-ignore + SNAPCRAFT_ENABLE_EXPERIMENTAL_EXTENSIONS: "1" + +systems: + - ubuntu-22.04 + - ubuntu-22.04-64 + - ubuntu-22.04-amd64 + - ubuntu-22.04-arm64 + +prepare: | + #shellcheck source=tests/spread/tools/snapcraft-yaml.sh + . "$TOOLS_DIR/snapcraft-yaml.sh" + set_base "$SNAP/snap/snapcraft.yaml" + + #shellcheck source=tests/spread/tools/package-utils.sh + . "$TOOLS_DIR/package-utils.sh" + create_dpkg_restore_point + +restore: | + cd "$SNAP" + snapcraft clean + rm -f ./*.snap + + #shellcheck source=tests/spread/tools/snapcraft-yaml.sh + . "$TOOLS_DIR/snapcraft-yaml.sh" + restore_yaml "snap/snapcraft.yaml" + + #shellcheck source=tests/spread/tools/package-utils.sh + . "$TOOLS_DIR/package-utils.sh" + dpkg_restore_point + +execute: | + cd "$SNAP" + + # Build the snap and verify that only package1 was included + snapcraft + [ -d parts/test-part/install/opt/ros/snap/lib/package1 ] + [ ! -d parts/test-part/install/opt/ros/snap/lib/package2 ] + [ ! -d parts/test-part/install/opt/ros/snap/lib/package3 ] + + snap install "${SNAP}"_1.0_*.snap --dangerous + [ "$($SNAP)" = "I am package1" ] diff --git a/tests/spread/core24-suites/plugins/colcon-talker-listener/colcon-talker-listener/CMakeLists.txt b/tests/spread/core24-suites/plugins/colcon-talker-listener/colcon-talker-listener/CMakeLists.txt new file mode 100644 index 0000000000..55b98b7cd4 --- /dev/null +++ b/tests/spread/core24-suites/plugins/colcon-talker-listener/colcon-talker-listener/CMakeLists.txt @@ -0,0 +1,37 @@ +cmake_minimum_required(VERSION 3.5) +project(colcon-ros2-talker-listener) + +# Default to C++14 +if(NOT CMAKE_CXX_STANDARD) + set(CMAKE_CXX_STANDARD 14) +endif() + +if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") + add_compile_options(-Wall -Wextra -Wpedantic) +endif() + +# find dependencies +find_package(ament_cmake REQUIRED) +find_package(rclcpp REQUIRED) +find_package(std_msgs REQUIRED) + +if(NOT WIN32) + ament_environment_hooks( + "${ament_cmake_package_templates_ENVIRONMENT_HOOK_LIBRARY_PATH}" + ) +endif() + +add_executable(talker src/publisher_member_function.cpp) +ament_target_dependencies(talker rclcpp std_msgs) + +add_executable(listener src/subscriber_member_function.cpp) +ament_target_dependencies(listener rclcpp std_msgs) + +install( + TARGETS talker listener + DESTINATION lib/${PROJECT_NAME} +) + +install(DIRECTORY launch DESTINATION share/${PROJECT_NAME}/) + +ament_package() diff --git a/tests/spread/core24-suites/plugins/colcon-talker-listener/colcon-talker-listener/launch/talker_listener.launch.py b/tests/spread/core24-suites/plugins/colcon-talker-listener/colcon-talker-listener/launch/talker_listener.launch.py new file mode 100644 index 0000000000..97685ac468 --- /dev/null +++ b/tests/spread/core24-suites/plugins/colcon-talker-listener/colcon-talker-listener/launch/talker_listener.launch.py @@ -0,0 +1,28 @@ +import launch +import launch_ros.actions +from launch.actions import DeclareLaunchArgument +from launch.substitutions import LaunchConfiguration + + +def generate_launch_description(): + return launch.LaunchDescription( + [ + launch_ros.actions.Node( + package="colcon-ros2-talker-listener", + executable="talker", + name="talker", + output="screen", + ), + DeclareLaunchArgument("exit_after_receive", default_value="False"), + launch_ros.actions.Node( + package="colcon-ros2-talker-listener", + executable="listener", + name="listener", + output="screen", + parameters=[ + {"exit_after_receive": LaunchConfiguration("exit_after_receive")} + ], + on_exit=launch.actions.Shutdown(), + ), + ] + ) diff --git a/tests/spread/core24-suites/plugins/colcon-talker-listener/colcon-talker-listener/package.xml b/tests/spread/core24-suites/plugins/colcon-talker-listener/colcon-talker-listener/package.xml new file mode 100644 index 0000000000..6b2b7e4be5 --- /dev/null +++ b/tests/spread/core24-suites/plugins/colcon-talker-listener/colcon-talker-listener/package.xml @@ -0,0 +1,23 @@ + + + + colcon-ros2-talker-listener + 0.0.0 + A talker listener demo + ubuntu-robotics + GPLv3 + + ament_cmake + + rclcpp + std_msgs + + ros2launch + + ament_lint_auto + ament_lint_common + + + ament_cmake + + diff --git a/tests/spread/core24-suites/plugins/colcon-talker-listener/colcon-talker-listener/snap/snapcraft.yaml b/tests/spread/core24-suites/plugins/colcon-talker-listener/colcon-talker-listener/snap/snapcraft.yaml new file mode 100644 index 0000000000..04d8729674 --- /dev/null +++ b/tests/spread/core24-suites/plugins/colcon-talker-listener/colcon-talker-listener/snap/snapcraft.yaml @@ -0,0 +1,21 @@ +name: colcon-talker-listener +version: "1.0" +summary: hello world +description: | + A ROS 2 talker-listener. + +grade: stable +confinement: strict +base: core24 + +apps: + colcon-talker-listener: + command: ros2 launch colcon-ros2-talker-listener talker_listener.launch.py + plugs: [network, network-bind] + extensions: [ros2-humble] + +parts: + hello: + plugin: colcon + source: . + build-packages: [g++, make] diff --git a/tests/spread/core24-suites/plugins/colcon-talker-listener/colcon-talker-listener/src/publisher_member_function.cpp b/tests/spread/core24-suites/plugins/colcon-talker-listener/colcon-talker-listener/src/publisher_member_function.cpp new file mode 100644 index 0000000000..c8d2ebfe00 --- /dev/null +++ b/tests/spread/core24-suites/plugins/colcon-talker-listener/colcon-talker-listener/src/publisher_member_function.cpp @@ -0,0 +1,56 @@ +// Copyright 2016 Open Source Robotics Foundation, Inc. +// +// 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. + +#include +#include + +#include "rclcpp/rclcpp.hpp" +#include "std_msgs/msg/string.hpp" + +using namespace std::chrono_literals; + +/* This example creates a subclass of Node and uses std::bind() to register a + * member function as a callback from the timer. */ + +class MinimalPublisher : public rclcpp::Node +{ +public: + MinimalPublisher() + : Node("minimal_publisher"), count_(0) + { + publisher_ = this->create_publisher("topic", 10); + timer_ = this->create_wall_timer( + 500ms, std::bind(&MinimalPublisher::timer_callback, this)); + } + +private: + void timer_callback() + { + auto message = std_msgs::msg::String(); + message.data = "Hello, world! " + std::to_string(count_++); + RCLCPP_INFO(this->get_logger(), "Publishing: '%s'", message.data.c_str()); + publisher_->publish(message); + } + rclcpp::TimerBase::SharedPtr timer_; + rclcpp::Publisher::SharedPtr publisher_; + size_t count_; +}; + +int main(int argc, char * argv[]) +{ + rclcpp::init(argc, argv); + rclcpp::spin(std::make_shared()); + rclcpp::shutdown(); + return 0; +} diff --git a/tests/spread/core24-suites/plugins/colcon-talker-listener/colcon-talker-listener/src/subscriber_member_function.cpp b/tests/spread/core24-suites/plugins/colcon-talker-listener/colcon-talker-listener/src/subscriber_member_function.cpp new file mode 100644 index 0000000000..655a4ffd57 --- /dev/null +++ b/tests/spread/core24-suites/plugins/colcon-talker-listener/colcon-talker-listener/src/subscriber_member_function.cpp @@ -0,0 +1,51 @@ +// Copyright 2016 Open Source Robotics Foundation, Inc. +// +// 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. + +#include + +#include "rclcpp/rclcpp.hpp" +#include "std_msgs/msg/string.hpp" +using std::placeholders::_1; + +class MinimalSubscriber : public rclcpp::Node +{ +public: + MinimalSubscriber() + : Node("minimal_subscriber") + { + subscription_ = this->create_subscription( + "topic", 10, std::bind(&MinimalSubscriber::topic_callback, this, _1)); + + this->declare_parameter("exit_after_receive", false); + } + +private: + void topic_callback(const std_msgs::msg::String::SharedPtr msg) const + { + RCLCPP_INFO(this->get_logger(), "I heard: '%s'", msg->data.c_str()); + + if (this->get_parameter("exit_after_receive").as_bool()) { + rclcpp::shutdown(); + } + } + rclcpp::Subscription::SharedPtr subscription_; +}; + +int main(int argc, char * argv[]) +{ + rclcpp::init(argc, argv); + rclcpp::spin(std::make_shared()); + rclcpp::shutdown(); + return 0; +} diff --git a/tests/spread/core24-suites/plugins/colcon-talker-listener/task.yaml b/tests/spread/core24-suites/plugins/colcon-talker-listener/task.yaml new file mode 100644 index 0000000000..16efdf61a3 --- /dev/null +++ b/tests/spread/core24-suites/plugins/colcon-talker-listener/task.yaml @@ -0,0 +1,38 @@ +summary: Build and run a basic colcon snap + +kill-timeout: 180m + +environment: + SNAP/catkin_ros2_run: colcon-talker-listener + +systems: + - ubuntu-22.04 + - ubuntu-22.04-64 + - ubuntu-22.04-amd64 + - ubuntu-22.04-arm64 + +prepare: | + #shellcheck source=tests/spread/tools/snapcraft-yaml.sh + . "$TOOLS_DIR/snapcraft-yaml.sh" + set_base "$SNAP/snap/snapcraft.yaml" + +restore: | + cd "$SNAP" + snapcraft clean + rm -f ./*.snap + + #shellcheck source=tests/spread/tools/snapcraft-yaml.sh + . "$TOOLS_DIR/snapcraft-yaml.sh" + restore_yaml "snap/snapcraft.yaml" + +execute: | + cd "$SNAP" + + # Build what and install the snap + snapcraft + snap install "${SNAP}"_1.0_*.snap --dangerous + + # Run the ROS system. By default this will never exit, but the snap supports + # an `exit_after_receive` parameter that, if true, will cause the system to + # shutdown after the listener has successfully received a message. + "$SNAP" exit_after_receive:=true | MATCH "I heard: 'Hello, world! 0'" diff --git a/tests/spread/core24/dotnet/snapcraft.yaml b/tests/spread/core24-suites/plugins/dotnet-unregistered/snapcraft.yaml similarity index 100% rename from tests/spread/core24/dotnet/snapcraft.yaml rename to tests/spread/core24-suites/plugins/dotnet-unregistered/snapcraft.yaml diff --git a/tests/spread/core24/dotnet/task.yaml b/tests/spread/core24-suites/plugins/dotnet-unregistered/task.yaml similarity index 100% rename from tests/spread/core24/dotnet/task.yaml rename to tests/spread/core24-suites/plugins/dotnet-unregistered/task.yaml diff --git a/tests/spread/core24-suites/plugins/kernel/config b/tests/spread/core24-suites/plugins/kernel/config new file mode 100644 index 0000000000..27f4055847 --- /dev/null +++ b/tests/spread/core24-suites/plugins/kernel/config @@ -0,0 +1,2383 @@ +# +# Automatically generated file; DO NOT EDIT. +# Linux/x86 5.15.60 Kernel Configuration +# +CONFIG_CC_VERSION_TEXT="x86_64-linux-gnu-gcc (Ubuntu 11.2.0-19ubuntu1) 11.2.0" +CONFIG_CC_IS_GCC=y +CONFIG_GCC_VERSION=110200 +CONFIG_CLANG_VERSION=0 +CONFIG_AS_IS_GNU=y +CONFIG_AS_VERSION=23800 +CONFIG_LD_IS_BFD=y +CONFIG_LD_VERSION=23800 +CONFIG_LLD_VERSION=0 +CONFIG_CC_CAN_LINK=y +CONFIG_CC_CAN_LINK_STATIC=y +CONFIG_CC_HAS_ASM_GOTO=y +CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y +CONFIG_CC_HAS_ASM_INLINE=y +CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y +CONFIG_PAHOLE_VERSION=0 +CONFIG_IRQ_WORK=y +CONFIG_BUILDTIME_TABLE_SORT=y +CONFIG_THREAD_INFO_IN_TASK=y + +# +# General setup +# +CONFIG_INIT_ENV_ARG_LIMIT=32 +# CONFIG_COMPILE_TEST is not set +# CONFIG_WERROR is not set +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_BUILD_SALT="" +CONFIG_HAVE_KERNEL_GZIP=y +CONFIG_HAVE_KERNEL_BZIP2=y +CONFIG_HAVE_KERNEL_LZMA=y +CONFIG_HAVE_KERNEL_XZ=y +CONFIG_HAVE_KERNEL_LZO=y +CONFIG_HAVE_KERNEL_LZ4=y +CONFIG_HAVE_KERNEL_ZSTD=y +# CONFIG_KERNEL_GZIP is not set +# CONFIG_KERNEL_BZIP2 is not set +# CONFIG_KERNEL_LZMA is not set +# CONFIG_KERNEL_XZ is not set +# CONFIG_KERNEL_LZO is not set +# CONFIG_KERNEL_LZ4 is not set +CONFIG_KERNEL_ZSTD=y +CONFIG_DEFAULT_INIT="" +CONFIG_DEFAULT_HOSTNAME="(none)" +CONFIG_VERSION_SIGNATURE="" +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SYSCTL=y +CONFIG_WATCH_QUEUE=y +CONFIG_CROSS_MEMORY_ATTACH=y +CONFIG_USELIB=y +CONFIG_HAVE_ARCH_AUDITSYSCALL=y + +# +# IRQ subsystem +# +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_GENERIC_IRQ_MIGRATION=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_IRQ_DOMAIN=y +CONFIG_IRQ_DOMAIN_HIERARCHY=y +CONFIG_GENERIC_IRQ_MATRIX_ALLOCATOR=y +CONFIG_GENERIC_IRQ_RESERVATION_MODE=y +CONFIG_IRQ_FORCED_THREADING=y +CONFIG_SPARSE_IRQ=y +# CONFIG_GENERIC_IRQ_DEBUGFS is not set +# end of IRQ subsystem + +CONFIG_CLOCKSOURCE_WATCHDOG=y +CONFIG_ARCH_CLOCKSOURCE_INIT=y +CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y +CONFIG_GENERIC_TIME_VSYSCALL=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y +CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y +CONFIG_GENERIC_CMOS_UPDATE=y +CONFIG_HAVE_POSIX_CPU_TIMERS_TASK_WORK=y +CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y + +# +# Timers subsystem +# +CONFIG_TICK_ONESHOT=y +CONFIG_NO_HZ_COMMON=y +# CONFIG_HZ_PERIODIC is not set +CONFIG_NO_HZ_IDLE=y +# CONFIG_NO_HZ_FULL is not set +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +# end of Timers subsystem + +CONFIG_BPF=y +CONFIG_HAVE_EBPF_JIT=y +CONFIG_ARCH_WANT_DEFAULT_BPF_JIT=y + +# +# BPF subsystem +# +CONFIG_BPF_SYSCALL=y +CONFIG_BPF_JIT=y +CONFIG_BPF_JIT_ALWAYS_ON=y +CONFIG_BPF_JIT_DEFAULT_ON=y +CONFIG_BPF_UNPRIV_DEFAULT_OFF=y +# CONFIG_BPF_PRELOAD is not set +# end of BPF subsystem + +# CONFIG_PREEMPT_NONE is not set +CONFIG_PREEMPT_VOLUNTARY=y +# CONFIG_PREEMPT is not set +CONFIG_SCHED_CORE=y + +# +# CPU/Task time and stats accounting +# +CONFIG_TICK_CPU_ACCOUNTING=y +# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set +# CONFIG_IRQ_TIME_ACCOUNTING is not set +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BSD_PROCESS_ACCT_V3=y +CONFIG_PSI=y +# CONFIG_PSI_DEFAULT_DISABLED is not set +# end of CPU/Task time and stats accounting + +CONFIG_CPU_ISOLATION=y + +# +# RCU Subsystem +# +CONFIG_TREE_RCU=y +# CONFIG_RCU_EXPERT is not set +CONFIG_SRCU=y +CONFIG_TREE_SRCU=y +CONFIG_TASKS_RCU_GENERIC=y +CONFIG_TASKS_TRACE_RCU=y +CONFIG_RCU_STALL_COMMON=y +CONFIG_RCU_NEED_SEGCBLIST=y +# end of RCU Subsystem + +CONFIG_BUILD_BIN2C=y +# CONFIG_IKCONFIG is not set +CONFIG_IKHEADERS=m +CONFIG_LOG_BUF_SHIFT=18 +CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 +CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13 +# CONFIG_PRINTK_INDEX is not set +CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y + +# +# Scheduler features +# +CONFIG_UCLAMP_TASK=y +CONFIG_UCLAMP_BUCKETS_COUNT=5 +# end of Scheduler features + +CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y +CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y +CONFIG_CC_HAS_INT128=y +CONFIG_ARCH_SUPPORTS_INT128=y +CONFIG_CGROUPS=y +CONFIG_PAGE_COUNTER=y +CONFIG_MEMCG=y +CONFIG_MEMCG_SWAP=y +CONFIG_MEMCG_KMEM=y +CONFIG_BLK_CGROUP=y +CONFIG_CGROUP_WRITEBACK=y +CONFIG_CGROUP_SCHED=y +CONFIG_FAIR_GROUP_SCHED=y +CONFIG_CFS_BANDWIDTH=y +# CONFIG_RT_GROUP_SCHED is not set +CONFIG_UCLAMP_TASK_GROUP=y +CONFIG_CGROUP_PIDS=y +CONFIG_CGROUP_RDMA=y +CONFIG_CGROUP_FREEZER=y +CONFIG_CGROUP_HUGETLB=y +CONFIG_CPUSETS=y +CONFIG_PROC_PID_CPUSET=y +CONFIG_CGROUP_DEVICE=y +CONFIG_CGROUP_CPUACCT=y +CONFIG_CGROUP_PERF=y +CONFIG_CGROUP_BPF=y +CONFIG_CGROUP_MISC=y +# CONFIG_CGROUP_DEBUG is not set +CONFIG_SOCK_CGROUP_DATA=y +CONFIG_NAMESPACES=y +CONFIG_UTS_NS=y +CONFIG_TIME_NS=y +CONFIG_IPC_NS=y +CONFIG_USER_NS=y +CONFIG_PID_NS=y +CONFIG_CHECKPOINT_RESTORE=y +CONFIG_SCHED_AUTOGROUP=y +# CONFIG_SYSFS_DEPRECATED is not set +CONFIG_RELAY=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" +CONFIG_RD_GZIP=y +CONFIG_RD_BZIP2=y +CONFIG_RD_LZMA=y +CONFIG_RD_XZ=y +CONFIG_RD_LZO=y +CONFIG_RD_LZ4=y +CONFIG_RD_ZSTD=y +CONFIG_BOOT_CONFIG=y +CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_LD_ORPHAN_WARN=y +CONFIG_SYSCTL=y +CONFIG_SYSCTL_EXCEPTION_TRACE=y +CONFIG_HAVE_PCSPKR_PLATFORM=y +CONFIG_EXPERT=y +CONFIG_MULTIUSER=y +CONFIG_SGETMASK_SYSCALL=y +CONFIG_SYSFS_SYSCALL=y +CONFIG_FHANDLE=y +CONFIG_POSIX_TIMERS=y +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_PCSPKR_PLATFORM=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_FUTEX_PI=y +CONFIG_EPOLL=y +CONFIG_SIGNALFD=y +CONFIG_TIMERFD=y +CONFIG_EVENTFD=y +CONFIG_SHMEM=y +CONFIG_AIO=y +CONFIG_IO_URING=y +CONFIG_ADVISE_SYSCALLS=y +CONFIG_HAVE_ARCH_USERFAULTFD_WP=y +CONFIG_HAVE_ARCH_USERFAULTFD_MINOR=y +CONFIG_MEMBARRIER=y +CONFIG_KALLSYMS=y +CONFIG_KALLSYMS_ALL=y +CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y +CONFIG_KALLSYMS_BASE_RELATIVE=y +CONFIG_USERFAULTFD=y +CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y +CONFIG_KCMP=y +CONFIG_RSEQ=y +# CONFIG_DEBUG_RSEQ is not set +# CONFIG_EMBEDDED is not set +CONFIG_HAVE_PERF_EVENTS=y +CONFIG_PC104=y + +# +# Kernel Performance Events And Counters +# +CONFIG_PERF_EVENTS=y +# CONFIG_DEBUG_PERF_USE_VMALLOC is not set +# end of Kernel Performance Events And Counters + +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_SLUB_DEBUG=y +# CONFIG_COMPAT_BRK is not set +# CONFIG_SLAB is not set +CONFIG_SLUB=y +# CONFIG_SLOB is not set +CONFIG_SLAB_MERGE_DEFAULT=y +CONFIG_SLAB_FREELIST_RANDOM=y +CONFIG_SLAB_FREELIST_HARDENED=y +CONFIG_SHUFFLE_PAGE_ALLOCATOR=y +CONFIG_SLUB_CPU_PARTIAL=y +CONFIG_SYSTEM_DATA_VERIFICATION=y +CONFIG_PROFILING=y +# end of General setup + +CONFIG_64BIT=y +CONFIG_X86_64=y +CONFIG_X86=y +CONFIG_INSTRUCTION_DECODER=y +CONFIG_OUTPUT_FORMAT="elf64-x86-64" +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_MMU=y +CONFIG_ARCH_MMAP_RND_BITS_MIN=28 +CONFIG_ARCH_MMAP_RND_BITS_MAX=32 +CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8 +CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16 +CONFIG_GENERIC_BUG=y +CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_ARCH_HAS_CPU_RELAX=y +CONFIG_ARCH_HAS_FILTER_PGPROT=y +CONFIG_HAVE_SETUP_PER_CPU_AREA=y +CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y +CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y +CONFIG_ARCH_HIBERNATION_POSSIBLE=y +CONFIG_ARCH_NR_GPIO=1024 +CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_ARCH_WANT_GENERAL_HUGETLB=y +CONFIG_AUDIT_ARCH=y +CONFIG_X86_64_SMP=y +CONFIG_ARCH_SUPPORTS_UPROBES=y +CONFIG_FIX_EARLYCON_MEM=y +CONFIG_PGTABLE_LEVELS=5 +CONFIG_CC_HAS_SANE_STACKPROTECTOR=y + +# +# Processor type and features +# +CONFIG_SMP=y +CONFIG_X86_FEATURE_NAMES=y +CONFIG_X86_MPPARSE=y +# CONFIG_GOLDFISH is not set +CONFIG_X86_CPU_RESCTRL=y +# CONFIG_X86_EXTENDED_PLATFORM is not set +# CONFIG_IOSF_MBI is not set +CONFIG_SCHED_OMIT_FRAME_POINTER=y +# CONFIG_HYPERVISOR_GUEST is not set +# CONFIG_MK8 is not set +# CONFIG_MPSC is not set +# CONFIG_MCORE2 is not set +# CONFIG_MATOM is not set +CONFIG_GENERIC_CPU=y +CONFIG_X86_INTERNODE_CACHE_SHIFT=6 +CONFIG_X86_L1_CACHE_SHIFT=6 +CONFIG_X86_TSC=y +CONFIG_X86_CMPXCHG64=y +CONFIG_X86_CMOV=y +CONFIG_X86_MINIMUM_CPU_FAMILY=64 +CONFIG_X86_DEBUGCTLMSR=y +CONFIG_IA32_FEAT_CTL=y +CONFIG_X86_VMX_FEATURE_NAMES=y +CONFIG_PROCESSOR_SELECT=y +CONFIG_CPU_SUP_INTEL=y +CONFIG_CPU_SUP_AMD=y +# CONFIG_CPU_SUP_HYGON is not set +# CONFIG_CPU_SUP_CENTAUR is not set +# CONFIG_CPU_SUP_ZHAOXIN is not set +CONFIG_HPET_TIMER=y +CONFIG_DMI=y +# CONFIG_GART_IOMMU is not set +CONFIG_MAXSMP=y +CONFIG_NR_CPUS_RANGE_BEGIN=8192 +CONFIG_NR_CPUS_RANGE_END=8192 +CONFIG_NR_CPUS_DEFAULT=8192 +CONFIG_NR_CPUS=8192 +CONFIG_SCHED_SMT=y +CONFIG_SCHED_MC=y +CONFIG_SCHED_MC_PRIO=y +CONFIG_X86_LOCAL_APIC=y +CONFIG_X86_IO_APIC=y +# CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS is not set +# CONFIG_X86_MCE is not set + +# +# Performance monitoring +# +CONFIG_PERF_EVENTS_INTEL_UNCORE=y +CONFIG_PERF_EVENTS_INTEL_RAPL=y +CONFIG_PERF_EVENTS_INTEL_CSTATE=y +# CONFIG_PERF_EVENTS_AMD_POWER is not set +CONFIG_PERF_EVENTS_AMD_UNCORE=m +# end of Performance monitoring + +CONFIG_X86_16BIT=y +CONFIG_X86_ESPFIX64=y +CONFIG_X86_VSYSCALL_EMULATION=y +CONFIG_X86_IOPL_IOPERM=y +CONFIG_MICROCODE=y +CONFIG_MICROCODE_INTEL=y +CONFIG_MICROCODE_AMD=y +CONFIG_MICROCODE_OLD_INTERFACE=y +# CONFIG_X86_MSR is not set +# CONFIG_X86_CPUID is not set +CONFIG_X86_5LEVEL=y +CONFIG_X86_DIRECT_GBPAGES=y +# CONFIG_X86_CPA_STATISTICS is not set +# CONFIG_AMD_MEM_ENCRYPT is not set +# CONFIG_NUMA is not set +CONFIG_ARCH_SPARSEMEM_ENABLE=y +CONFIG_ARCH_SPARSEMEM_DEFAULT=y +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +CONFIG_ARCH_PROC_KCORE_TEXT=y +CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 +CONFIG_X86_CHECK_BIOS_CORRUPTION=y +CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y +CONFIG_MTRR=y +CONFIG_MTRR_SANITIZER=y +CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=1 +CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1 +CONFIG_X86_PAT=y +CONFIG_ARCH_USES_PG_UNCACHED=y +CONFIG_ARCH_RANDOM=y +CONFIG_X86_SMAP=y +CONFIG_X86_UMIP=y +CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS=y +CONFIG_X86_INTEL_TSX_MODE_OFF=y +# CONFIG_X86_INTEL_TSX_MODE_ON is not set +# CONFIG_X86_INTEL_TSX_MODE_AUTO is not set +CONFIG_X86_SGX=y +# CONFIG_HZ_100 is not set +CONFIG_HZ_250=y +# CONFIG_HZ_300 is not set +# CONFIG_HZ_1000 is not set +CONFIG_HZ=250 +CONFIG_SCHED_HRTICK=y +CONFIG_KEXEC=y +CONFIG_KEXEC_FILE=y +CONFIG_ARCH_HAS_KEXEC_PURGATORY=y +CONFIG_KEXEC_SIG=y +# CONFIG_KEXEC_SIG_FORCE is not set +CONFIG_KEXEC_BZIMAGE_VERIFY_SIG=y +CONFIG_CRASH_DUMP=y +CONFIG_PHYSICAL_START=0x1000000 +CONFIG_RELOCATABLE=y +CONFIG_RANDOMIZE_BASE=y +CONFIG_X86_NEED_RELOCS=y +CONFIG_PHYSICAL_ALIGN=0x200000 +CONFIG_DYNAMIC_MEMORY_LAYOUT=y +CONFIG_RANDOMIZE_MEMORY=y +CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0xa +CONFIG_HOTPLUG_CPU=y +# CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set +# CONFIG_DEBUG_HOTPLUG_CPU0 is not set +# CONFIG_LEGACY_VSYSCALL_EMULATE is not set +CONFIG_LEGACY_VSYSCALL_XONLY=y +# CONFIG_LEGACY_VSYSCALL_NONE is not set +# CONFIG_CMDLINE_BOOL is not set +CONFIG_MODIFY_LDT_SYSCALL=y +# CONFIG_STRICT_SIGALTSTACK_SIZE is not set +CONFIG_HAVE_LIVEPATCH=y +# end of Processor type and features + +CONFIG_CC_HAS_SLS=y +CONFIG_CC_HAS_RETURN_THUNK=y +CONFIG_SPECULATION_MITIGATIONS=y +CONFIG_PAGE_TABLE_ISOLATION=y +CONFIG_RETPOLINE=y +CONFIG_RETHUNK=y +CONFIG_CPU_UNRET_ENTRY=y +CONFIG_CPU_IBPB_ENTRY=y +CONFIG_CPU_IBRS_ENTRY=y +CONFIG_SLS=y +CONFIG_ARCH_HAS_ADD_PAGES=y +CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y + +# +# Power management and ACPI options +# +# CONFIG_SUSPEND is not set +# CONFIG_HIBERNATION is not set +CONFIG_PM=y +# CONFIG_PM_DEBUG is not set +CONFIG_PM_CLK=y +# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set +# CONFIG_ENERGY_MODEL is not set +CONFIG_ARCH_SUPPORTS_ACPI=y +# CONFIG_ACPI is not set + +# +# CPU Frequency scaling +# +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_GOV_ATTR_SET=y +# CONFIG_CPU_FREQ_STAT is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_GOV_USERSPACE is not set +# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set +# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set +CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y + +# +# CPU frequency scaling drivers +# +CONFIG_X86_INTEL_PSTATE=y +# CONFIG_X86_P4_CLOCKMOD is not set + +# +# shared options +# +# end of CPU Frequency scaling + +# +# CPU Idle +# +# CONFIG_CPU_IDLE is not set +# end of CPU Idle +# end of Power management and ACPI options + +# +# Bus options (PCI etc.) +# +CONFIG_PCI_DIRECT=y +# CONFIG_PCI_CNB20LE_QUIRK is not set +# CONFIG_ISA_BUS is not set +# CONFIG_ISA_DMA_API is not set +CONFIG_AMD_NB=y +# end of Bus options (PCI etc.) + +# +# Binary Emulations +# +# CONFIG_IA32_EMULATION is not set +# CONFIG_X86_X32 is not set +# end of Binary Emulations + +CONFIG_HAVE_KVM=y +# CONFIG_VIRTUALIZATION is not set +CONFIG_AS_AVX512=y +CONFIG_AS_SHA1_NI=y +CONFIG_AS_SHA256_NI=y +CONFIG_AS_TPAUSE=y + +# +# General architecture-dependent options +# +CONFIG_CRASH_CORE=y +CONFIG_KEXEC_CORE=y +CONFIG_HOTPLUG_SMT=y +CONFIG_GENERIC_ENTRY=y +CONFIG_KPROBES=y +# CONFIG_JUMP_LABEL is not set +# CONFIG_STATIC_CALL_SELFTEST is not set +CONFIG_OPTPROBES=y +CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y +CONFIG_ARCH_USE_BUILTIN_BSWAP=y +CONFIG_KRETPROBES=y +CONFIG_HAVE_IOREMAP_PROT=y +CONFIG_HAVE_KPROBES=y +CONFIG_HAVE_KRETPROBES=y +CONFIG_HAVE_OPTPROBES=y +CONFIG_HAVE_KPROBES_ON_FTRACE=y +CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y +CONFIG_HAVE_NMI=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_HAVE_ARCH_TRACEHOOK=y +CONFIG_HAVE_DMA_CONTIGUOUS=y +CONFIG_GENERIC_SMP_IDLE_THREAD=y +CONFIG_ARCH_HAS_FORTIFY_SOURCE=y +CONFIG_ARCH_HAS_SET_MEMORY=y +CONFIG_ARCH_HAS_SET_DIRECT_MAP=y +CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y +CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y +CONFIG_ARCH_WANTS_NO_INSTR=y +CONFIG_HAVE_ASM_MODVERSIONS=y +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +CONFIG_HAVE_RSEQ=y +CONFIG_HAVE_FUNCTION_ARG_ACCESS_API=y +CONFIG_HAVE_HW_BREAKPOINT=y +CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y +CONFIG_HAVE_USER_RETURN_NOTIFIER=y +CONFIG_HAVE_PERF_EVENTS_NMI=y +CONFIG_HAVE_HARDLOCKUP_DETECTOR_PERF=y +CONFIG_HAVE_PERF_REGS=y +CONFIG_HAVE_PERF_USER_STACK_DUMP=y +CONFIG_HAVE_ARCH_JUMP_LABEL=y +CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y +CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y +CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y +CONFIG_HAVE_CMPXCHG_LOCAL=y +CONFIG_HAVE_CMPXCHG_DOUBLE=y +CONFIG_HAVE_ARCH_SECCOMP=y +CONFIG_HAVE_ARCH_SECCOMP_FILTER=y +# CONFIG_SECCOMP is not set +CONFIG_HAVE_ARCH_STACKLEAK=y +CONFIG_HAVE_STACKPROTECTOR=y +# CONFIG_STACKPROTECTOR is not set +CONFIG_ARCH_SUPPORTS_LTO_CLANG=y +CONFIG_ARCH_SUPPORTS_LTO_CLANG_THIN=y +CONFIG_LTO_NONE=y +CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y +CONFIG_HAVE_CONTEXT_TRACKING=y +CONFIG_HAVE_CONTEXT_TRACKING_OFFSTACK=y +CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y +CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y +CONFIG_HAVE_MOVE_PUD=y +CONFIG_HAVE_MOVE_PMD=y +CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y +CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD=y +CONFIG_HAVE_ARCH_HUGE_VMAP=y +CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y +CONFIG_HAVE_ARCH_SOFT_DIRTY=y +CONFIG_HAVE_MOD_ARCH_SPECIFIC=y +CONFIG_MODULES_USE_ELF_RELA=y +CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y +CONFIG_HAVE_SOFTIRQ_ON_OWN_STACK=y +CONFIG_ARCH_HAS_ELF_RANDOMIZE=y +CONFIG_HAVE_ARCH_MMAP_RND_BITS=y +CONFIG_HAVE_EXIT_THREAD=y +CONFIG_ARCH_MMAP_RND_BITS=28 +CONFIG_HAVE_STACK_VALIDATION=y +CONFIG_HAVE_RELIABLE_STACKTRACE=y +# CONFIG_COMPAT_32BIT_TIME is not set +CONFIG_HAVE_ARCH_VMAP_STACK=y +# CONFIG_VMAP_STACK is not set +CONFIG_HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET=y +# CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT is not set +CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y +CONFIG_STRICT_KERNEL_RWX=y +CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y +CONFIG_STRICT_MODULE_RWX=y +CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y +# CONFIG_LOCK_EVENT_COUNTS is not set +CONFIG_ARCH_HAS_MEM_ENCRYPT=y +CONFIG_HAVE_STATIC_CALL=y +CONFIG_HAVE_STATIC_CALL_INLINE=y +CONFIG_HAVE_PREEMPT_DYNAMIC=y +CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y +CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y +CONFIG_ARCH_HAS_ELFCORE_COMPAT=y +CONFIG_ARCH_HAS_PARANOID_L1D_FLUSH=y +CONFIG_DYNAMIC_SIGFRAME=y + +# +# GCOV-based kernel profiling +# +# CONFIG_GCOV_KERNEL is not set +CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y +# end of GCOV-based kernel profiling + +CONFIG_HAVE_GCC_PLUGINS=y +# end of General architecture-dependent options + +CONFIG_RT_MUTEXES=y +CONFIG_BASE_SMALL=0 +CONFIG_MODULE_SIG_FORMAT=y +CONFIG_MODULES=y +# CONFIG_MODULE_FORCE_LOAD is not set +CONFIG_MODULE_UNLOAD=y +# CONFIG_MODULE_FORCE_UNLOAD is not set +CONFIG_MODVERSIONS=y +CONFIG_ASM_MODVERSIONS=y +CONFIG_MODULE_SRCVERSION_ALL=y +CONFIG_MODULE_SIG=y +# CONFIG_MODULE_SIG_FORCE is not set +CONFIG_MODULE_SIG_ALL=y +# CONFIG_MODULE_SIG_SHA1 is not set +# CONFIG_MODULE_SIG_SHA224 is not set +# CONFIG_MODULE_SIG_SHA256 is not set +# CONFIG_MODULE_SIG_SHA384 is not set +CONFIG_MODULE_SIG_SHA512=y +CONFIG_MODULE_SIG_HASH="sha512" +CONFIG_MODULE_COMPRESS_NONE=y +# CONFIG_MODULE_COMPRESS_GZIP is not set +# CONFIG_MODULE_COMPRESS_XZ is not set +# CONFIG_MODULE_COMPRESS_ZSTD is not set +# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set +CONFIG_MODPROBE_PATH="/sbin/modprobe" +# CONFIG_TRIM_UNUSED_KSYMS is not set +CONFIG_MODULES_TREE_LOOKUP=y +CONFIG_BLOCK=y +CONFIG_BLK_CGROUP_RWSTAT=y +CONFIG_BLK_DEV_BSG_COMMON=y +CONFIG_BLK_DEV_BSGLIB=y +CONFIG_BLK_DEV_INTEGRITY=y +# CONFIG_BLK_DEV_ZONED is not set +CONFIG_BLK_DEV_THROTTLING=y +# CONFIG_BLK_DEV_THROTTLING_LOW is not set +# CONFIG_BLK_WBT is not set +# CONFIG_BLK_CGROUP_IOLATENCY is not set +# CONFIG_BLK_CGROUP_IOCOST is not set +# CONFIG_BLK_CGROUP_IOPRIO is not set +# CONFIG_BLK_DEBUG_FS is not set +# CONFIG_BLK_SED_OPAL is not set +# CONFIG_BLK_INLINE_ENCRYPTION is not set + +# +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +# CONFIG_ACORN_PARTITION is not set +# CONFIG_AIX_PARTITION is not set +# CONFIG_OSF_PARTITION is not set +# CONFIG_AMIGA_PARTITION is not set +# CONFIG_ATARI_PARTITION is not set +# CONFIG_MAC_PARTITION is not set +CONFIG_MSDOS_PARTITION=y +# CONFIG_BSD_DISKLABEL is not set +# CONFIG_MINIX_SUBPARTITION is not set +# CONFIG_SOLARIS_X86_PARTITION is not set +# CONFIG_UNIXWARE_DISKLABEL is not set +CONFIG_LDM_PARTITION=y +# CONFIG_LDM_DEBUG is not set +# CONFIG_SGI_PARTITION is not set +# CONFIG_ULTRIX_PARTITION is not set +# CONFIG_SUN_PARTITION is not set +# CONFIG_KARMA_PARTITION is not set +# CONFIG_EFI_PARTITION is not set +# CONFIG_SYSV68_PARTITION is not set +CONFIG_CMDLINE_PARTITION=y +# end of Partition Types + +CONFIG_BLK_MQ_PCI=y +CONFIG_BLK_PM=y + +# +# IO Schedulers +# +CONFIG_MQ_IOSCHED_DEADLINE=y +# CONFIG_MQ_IOSCHED_KYBER is not set +# CONFIG_IOSCHED_BFQ is not set +# end of IO Schedulers + +CONFIG_ASN1=y +CONFIG_INLINE_SPIN_UNLOCK_IRQ=y +CONFIG_INLINE_READ_UNLOCK=y +CONFIG_INLINE_READ_UNLOCK_IRQ=y +CONFIG_INLINE_WRITE_UNLOCK=y +CONFIG_INLINE_WRITE_UNLOCK_IRQ=y +CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y +CONFIG_MUTEX_SPIN_ON_OWNER=y +CONFIG_RWSEM_SPIN_ON_OWNER=y +CONFIG_LOCK_SPIN_ON_OWNER=y +CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y +CONFIG_QUEUED_SPINLOCKS=y +CONFIG_ARCH_USE_QUEUED_RWLOCKS=y +CONFIG_QUEUED_RWLOCKS=y +CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y +CONFIG_ARCH_HAS_SYNC_CORE_BEFORE_USERMODE=y +CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y +CONFIG_FREEZER=y + +# +# Executable file formats +# +CONFIG_BINFMT_ELF=y +CONFIG_ELFCORE=y +CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y +CONFIG_BINFMT_SCRIPT=y +# CONFIG_BINFMT_MISC is not set +CONFIG_COREDUMP=y +# end of Executable file formats + +# +# Memory Management options +# +CONFIG_SELECT_MEMORY_MODEL=y +CONFIG_SPARSEMEM_MANUAL=y +CONFIG_SPARSEMEM=y +CONFIG_SPARSEMEM_EXTREME=y +CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y +CONFIG_SPARSEMEM_VMEMMAP=y +CONFIG_HAVE_FAST_GUP=y +CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y +# CONFIG_MEMORY_HOTPLUG is not set +CONFIG_SPLIT_PTLOCK_CPUS=4 +CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y +CONFIG_COMPACTION=y +CONFIG_PAGE_REPORTING=y +CONFIG_MIGRATION=y +CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y +CONFIG_PHYS_ADDR_T_64BIT=y +CONFIG_VIRT_TO_BUS=y +CONFIG_MMU_NOTIFIER=y +CONFIG_KSM=y +CONFIG_DEFAULT_MMAP_MIN_ADDR=65536 +# CONFIG_TRANSPARENT_HUGEPAGE is not set +CONFIG_ARCH_WANTS_THP_SWAP=y +# CONFIG_CLEANCACHE is not set +# CONFIG_FRONTSWAP is not set +# CONFIG_CMA is not set +# CONFIG_MEM_SOFT_DIRTY is not set +# CONFIG_ZPOOL is not set +# CONFIG_ZSMALLOC is not set +CONFIG_GENERIC_EARLY_IOREMAP=y +# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set +# CONFIG_IDLE_PAGE_TRACKING is not set +CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y +CONFIG_ARCH_HAS_PTE_DEVMAP=y +CONFIG_ARCH_HAS_ZONE_DMA_SET=y +CONFIG_ZONE_DMA=y +CONFIG_ZONE_DMA32=y +CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y +CONFIG_ARCH_HAS_PKEYS=y +# CONFIG_PERCPU_STATS is not set +# CONFIG_GUP_TEST is not set +CONFIG_ARCH_HAS_PTE_SPECIAL=y +CONFIG_SECRETMEM=y + +# +# Data Access Monitoring +# +# CONFIG_DAMON is not set +# end of Data Access Monitoring +# end of Memory Management options + +# CONFIG_NET is not set + +# +# Device Drivers +# +CONFIG_HAVE_EISA=y +# CONFIG_EISA is not set +CONFIG_HAVE_PCI=y +CONFIG_PCI=y +CONFIG_PCI_DOMAINS=y +# CONFIG_PCIEPORTBUS is not set +CONFIG_PCIEASPM=y +CONFIG_PCIEASPM_DEFAULT=y +# CONFIG_PCIEASPM_POWERSAVE is not set +# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set +# CONFIG_PCIEASPM_PERFORMANCE is not set +# CONFIG_PCIE_PTM is not set +# CONFIG_PCI_MSI is not set +# CONFIG_PCI_QUIRKS is not set +# CONFIG_PCI_DEBUG is not set +# CONFIG_PCI_STUB is not set +CONFIG_PCI_LOCKLESS_CONFIG=y +# CONFIG_PCI_IOV is not set +# CONFIG_PCI_PRI is not set +# CONFIG_PCI_PASID is not set +CONFIG_PCI_LABEL=y +# CONFIG_PCIE_BUS_TUNE_OFF is not set +CONFIG_PCIE_BUS_DEFAULT=y +# CONFIG_PCIE_BUS_SAFE is not set +# CONFIG_PCIE_BUS_PERFORMANCE is not set +# CONFIG_PCIE_BUS_PEER2PEER is not set +# CONFIG_HOTPLUG_PCI is not set + +# +# PCI controller drivers +# + +# +# DesignWare PCI Core Support +# +# end of DesignWare PCI Core Support + +# +# Mobiveil PCIe Core Support +# +# end of Mobiveil PCIe Core Support + +# +# Cadence PCIe controllers support +# +# end of Cadence PCIe controllers support +# end of PCI controller drivers + +# +# PCI Endpoint +# +# CONFIG_PCI_ENDPOINT is not set +# end of PCI Endpoint + +# +# PCI switch controller drivers +# +# CONFIG_PCI_SW_SWITCHTEC is not set +# end of PCI switch controller drivers + +# CONFIG_CXL_BUS is not set +# CONFIG_PCCARD is not set +# CONFIG_RAPIDIO is not set + +# +# Generic Driver Options +# +# CONFIG_UEVENT_HELPER is not set +# CONFIG_DEVTMPFS is not set +# CONFIG_STANDALONE is not set +CONFIG_PREVENT_FIRMWARE_BUILD=y + +# +# Firmware loader +# +CONFIG_FW_LOADER=y +CONFIG_FW_LOADER_PAGED_BUF=y +CONFIG_EXTRA_FIRMWARE="" +CONFIG_FW_LOADER_USER_HELPER=y +# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set +CONFIG_FW_LOADER_COMPRESS=y +# end of Firmware loader + +CONFIG_ALLOW_DEV_COREDUMP=y +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_DEVRES is not set +# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set +# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set +CONFIG_GENERIC_CPU_AUTOPROBE=y +CONFIG_GENERIC_CPU_VULNERABILITIES=y +CONFIG_REGMAP=y +CONFIG_REGMAP_MMIO=y +CONFIG_REGMAP_IRQ=y +CONFIG_DMA_SHARED_BUFFER=y +# CONFIG_DMA_FENCE_TRACE is not set +# end of Generic Driver Options + +# +# Bus devices +# +# CONFIG_MHI_BUS is not set +# end of Bus devices + +# +# Firmware Drivers +# + +# +# ARM System Control and Management Interface Protocol +# +# end of ARM System Control and Management Interface Protocol + +# CONFIG_EDD is not set +# CONFIG_FIRMWARE_MEMMAP is not set +# CONFIG_DMIID is not set +# CONFIG_DMI_SYSFS is not set +CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y +# CONFIG_FW_CFG_SYSFS is not set +CONFIG_SYSFB=y +# CONFIG_SYSFB_SIMPLEFB is not set +# CONFIG_GOOGLE_FIRMWARE is not set + +# +# Tegra firmware driver +# +# end of Tegra firmware driver +# end of Firmware Drivers + +# CONFIG_GNSS is not set +# CONFIG_MTD is not set +# CONFIG_OF is not set +CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y +# CONFIG_PARPORT is not set +# CONFIG_BLK_DEV is not set + +# +# NVME Support +# +# CONFIG_BLK_DEV_NVME is not set +# CONFIG_NVME_FC is not set +# CONFIG_NVME_TARGET is not set +# end of NVME Support + +# +# Misc devices +# +# CONFIG_DUMMY_IRQ is not set +# CONFIG_IBM_ASM is not set +# CONFIG_PHANTOM is not set +# CONFIG_TIFM_CORE is not set +# CONFIG_ENCLOSURE_SERVICES is not set +# CONFIG_HP_ILO is not set +# CONFIG_SRAM is not set +# CONFIG_DW_XDATA_PCIE is not set +# CONFIG_PCI_ENDPOINT_TEST is not set +# CONFIG_XILINX_SDFEC is not set +# CONFIG_C2PORT is not set + +# +# EEPROM support +# +# CONFIG_EEPROM_93CX6 is not set +# end of EEPROM support + +# CONFIG_CB710_CORE is not set + +# +# Texas Instruments shared transport line discipline +# +# end of Texas Instruments shared transport line discipline + +# +# Altera FPGA firmware download module (requires I2C) +# +# CONFIG_INTEL_MEI is not set +# CONFIG_INTEL_MEI_ME is not set +# CONFIG_INTEL_MEI_TXE is not set +# CONFIG_INTEL_VSC is not set +# CONFIG_INTEL_VSC_PSE is not set +# CONFIG_INTEL_VSC_ACE_DEBUG is not set +# CONFIG_VMWARE_VMCI is not set +# CONFIG_GENWQE is not set +# CONFIG_ECHO is not set +# CONFIG_MISC_ALCOR_PCI is not set +# CONFIG_MISC_RTSX_PCI is not set +# CONFIG_HABANA_AI is not set +# CONFIG_PVPANIC is not set +# end of Misc devices + +# +# SCSI device support +# +CONFIG_SCSI_MOD=y +# CONFIG_RAID_ATTRS is not set +# CONFIG_SCSI is not set +# end of SCSI device support + +# CONFIG_ATA is not set +# CONFIG_MD is not set +# CONFIG_TARGET_CORE is not set +# CONFIG_FUSION is not set + +# +# IEEE 1394 (FireWire) support +# +# CONFIG_FIREWIRE is not set +# CONFIG_FIREWIRE_NOSY is not set +# end of IEEE 1394 (FireWire) support + +# CONFIG_MACINTOSH_DRIVERS is not set + +# +# Input device support +# +CONFIG_INPUT=y +# CONFIG_INPUT_FF_MEMLESS is not set +# CONFIG_INPUT_SPARSEKMAP is not set +# CONFIG_INPUT_MATRIXKMAP is not set + +# +# Userland interfaces +# +# CONFIG_INPUT_MOUSEDEV is not set +# CONFIG_INPUT_JOYDEV is not set +# CONFIG_INPUT_EVDEV is not set +# CONFIG_INPUT_EVBUG is not set + +# +# Input Device Drivers +# +# CONFIG_INPUT_KEYBOARD is not set +# CONFIG_INPUT_MOUSE is not set +# CONFIG_INPUT_JOYSTICK is not set +# CONFIG_INPUT_TABLET is not set +# CONFIG_INPUT_TOUCHSCREEN is not set +# CONFIG_INPUT_MISC is not set +# CONFIG_RMI4_CORE is not set + +# +# Hardware I/O ports +# +CONFIG_SERIO=m +CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y +# CONFIG_SERIO_I8042 is not set +CONFIG_SERIO_SERPORT=m +# CONFIG_SERIO_CT82C710 is not set +# CONFIG_SERIO_PCIPS2 is not set +# CONFIG_SERIO_LIBPS2 is not set +# CONFIG_SERIO_RAW is not set +# CONFIG_SERIO_ALTERA_PS2 is not set +# CONFIG_SERIO_PS2MULT is not set +# CONFIG_SERIO_ARC_PS2 is not set +# CONFIG_USERIO is not set +# CONFIG_GAMEPORT is not set +# end of Hardware I/O ports +# end of Input device support + +# +# Character devices +# +CONFIG_TTY=y +CONFIG_VT=y +CONFIG_CONSOLE_TRANSLATIONS=y +CONFIG_VT_CONSOLE=y +CONFIG_HW_CONSOLE=y +CONFIG_VT_HW_CONSOLE_BINDING=y +CONFIG_UNIX98_PTYS=y +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=0 +CONFIG_LDISC_AUTOLOAD=y + +# +# Serial drivers +# +CONFIG_SERIAL_EARLYCON=y +CONFIG_SERIAL_8250=y +# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set +CONFIG_SERIAL_8250_16550A_VARIANTS=y +CONFIG_SERIAL_8250_FINTEK=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_PCI=y +CONFIG_SERIAL_8250_EXAR=y +CONFIG_SERIAL_8250_NR_UARTS=48 +CONFIG_SERIAL_8250_RUNTIME_UARTS=32 +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_MANY_PORTS=y +CONFIG_SERIAL_8250_SHARE_IRQ=y +# CONFIG_SERIAL_8250_DETECT_IRQ is not set +CONFIG_SERIAL_8250_RSA=y +CONFIG_SERIAL_8250_DWLIB=y +CONFIG_SERIAL_8250_DW=m +CONFIG_SERIAL_8250_RT288X=y +CONFIG_SERIAL_8250_LPSS=y +CONFIG_SERIAL_8250_MID=y + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_KGDB_NMI=y +CONFIG_SERIAL_UARTLITE=m +CONFIG_SERIAL_UARTLITE_NR_UARTS=1 +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +CONFIG_CONSOLE_POLL=y +# CONFIG_SERIAL_JSM is not set +CONFIG_SERIAL_LANTIQ=m +CONFIG_SERIAL_SCCNXP=y +CONFIG_SERIAL_SCCNXP_CONSOLE=y +# CONFIG_SERIAL_BCM63XX is not set +CONFIG_SERIAL_ALTERA_JTAGUART=m +CONFIG_SERIAL_ALTERA_UART=m +CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4 +CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200 +CONFIG_SERIAL_ARC=m +CONFIG_SERIAL_ARC_NR_PORTS=1 +# CONFIG_SERIAL_RP2 is not set +CONFIG_SERIAL_FSL_LPUART=m +CONFIG_SERIAL_FSL_LINFLEXUART=m +# CONFIG_SERIAL_SPRD is not set +# end of Serial drivers + +# CONFIG_SERIAL_NONSTANDARD is not set +# CONFIG_NOZOMI is not set +# CONFIG_NULL_TTY is not set +# CONFIG_SERIAL_DEV_BUS is not set +# CONFIG_TTY_PRINTK is not set +# CONFIG_VIRTIO_CONSOLE is not set +# CONFIG_IPMI_HANDLER is not set +CONFIG_HW_RANDOM=y +CONFIG_HW_RANDOM_TIMERIOMEM=m +CONFIG_HW_RANDOM_INTEL=y +CONFIG_HW_RANDOM_AMD=y +CONFIG_HW_RANDOM_BA431=m +CONFIG_HW_RANDOM_VIA=m +CONFIG_HW_RANDOM_XIPHERA=m +# CONFIG_APPLICOM is not set +# CONFIG_MWAVE is not set +CONFIG_DEVMEM=y +# CONFIG_NVRAM is not set +CONFIG_DEVPORT=y +# CONFIG_HANGCHECK_TIMER is not set +# CONFIG_TCG_TPM is not set +# CONFIG_TELCLOCK is not set +# CONFIG_XILLYBUS is not set +# CONFIG_RANDOM_TRUST_CPU is not set +# CONFIG_RANDOM_TRUST_BOOTLOADER is not set +# end of Character devices + +# +# I2C support +# +# CONFIG_I2C is not set +# end of I2C support + +# CONFIG_I3C is not set +# CONFIG_SPI is not set +# CONFIG_SPMI is not set +# CONFIG_HSI is not set +# CONFIG_PPS is not set + +# +# PTP clock support +# +CONFIG_PTP_1588_CLOCK_OPTIONAL=y + +# +# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks. +# +# end of PTP clock support + +CONFIG_PINCTRL=y +CONFIG_PINMUX=y +CONFIG_PINCONF=y +CONFIG_GENERIC_PINCONF=y +# CONFIG_DEBUG_PINCTRL is not set + +# +# Renesas pinctrl drivers +# +# end of Renesas pinctrl drivers + +CONFIG_PINCTRL_MADERA=m +CONFIG_PINCTRL_CS47L15=y +CONFIG_PINCTRL_CS47L35=y +CONFIG_PINCTRL_CS47L85=y +CONFIG_PINCTRL_CS47L90=y +CONFIG_PINCTRL_CS47L92=y +# CONFIG_GPIOLIB is not set +# CONFIG_W1 is not set +# CONFIG_POWER_RESET is not set +# CONFIG_POWER_SUPPLY is not set +# CONFIG_HWMON is not set +# CONFIG_THERMAL is not set +# CONFIG_WATCHDOG is not set +CONFIG_SSB_POSSIBLE=y +# CONFIG_SSB is not set +CONFIG_BCMA_POSSIBLE=y +# CONFIG_BCMA is not set + +# +# Multifunction device drivers +# +CONFIG_MFD_CORE=m +CONFIG_MFD_MADERA=m +CONFIG_MFD_CS47L15=y +CONFIG_MFD_CS47L35=y +CONFIG_MFD_CS47L85=y +CONFIG_MFD_CS47L90=y +CONFIG_MFD_CS47L92=y +CONFIG_HTC_PASIC3=m +# CONFIG_MFD_INTEL_QUARK_I2C_GPIO is not set +# CONFIG_LPC_ICH is not set +# CONFIG_LPC_SCH is not set +# CONFIG_MFD_INTEL_LPSS_PCI is not set +# CONFIG_MFD_INTEL_PMT is not set +# CONFIG_MFD_JANZ_CMODIO is not set +CONFIG_MFD_KEMPLD=m +CONFIG_MFD_MT6397=m +# CONFIG_MFD_RDC321X is not set +CONFIG_MFD_SM501=m +CONFIG_MFD_SYSCON=y +CONFIG_MFD_TI_AM335X_TSCADC=m +CONFIG_MFD_TQMX86=m +# CONFIG_MFD_VX855 is not set +# end of Multifunction device drivers + +# CONFIG_REGULATOR is not set +# CONFIG_RC_CORE is not set +# CONFIG_MEDIA_CEC_SUPPORT is not set +# CONFIG_MEDIA_SUPPORT is not set + +# +# Graphics support +# +# CONFIG_AGP is not set +CONFIG_VGA_ARB=y +CONFIG_VGA_ARB_MAX_GPUS=16 +# CONFIG_DRM is not set + +# +# ARM devices +# +# end of ARM devices + +# +# Frame buffer Devices +# +# CONFIG_FB is not set +# end of Frame buffer Devices + +# +# Backlight & LCD device support +# +# CONFIG_LCD_CLASS_DEVICE is not set +# CONFIG_BACKLIGHT_CLASS_DEVICE is not set +# end of Backlight & LCD device support + +# +# Console display driver support +# +CONFIG_VGA_CONSOLE=y +CONFIG_DUMMY_CONSOLE=y +CONFIG_DUMMY_CONSOLE_COLUMNS=80 +CONFIG_DUMMY_CONSOLE_ROWS=25 +# end of Console display driver support +# end of Graphics support + +# CONFIG_SOUND is not set + +# +# HID support +# +CONFIG_HID=m +# CONFIG_HID_BATTERY_STRENGTH is not set +# CONFIG_HIDRAW is not set +# CONFIG_UHID is not set +CONFIG_HID_GENERIC=m + +# +# Special HID drivers +# +# CONFIG_HID_A4TECH is not set +# CONFIG_HID_ACRUX is not set +# CONFIG_HID_APPLE is not set +# CONFIG_HID_AUREAL is not set +# CONFIG_HID_BELKIN is not set +# CONFIG_HID_CHERRY is not set +# CONFIG_HID_COUGAR is not set +# CONFIG_HID_MACALLY is not set +# CONFIG_HID_CMEDIA is not set +# CONFIG_HID_CYPRESS is not set +# CONFIG_HID_DRAGONRISE is not set +# CONFIG_HID_EMS_FF is not set +# CONFIG_HID_ELECOM is not set +# CONFIG_HID_EZKEY is not set +# CONFIG_HID_GEMBIRD is not set +# CONFIG_HID_GFRM is not set +# CONFIG_HID_GLORIOUS is not set +# CONFIG_HID_VIVALDI is not set +# CONFIG_HID_KEYTOUCH is not set +# CONFIG_HID_KYE is not set +# CONFIG_HID_WALTOP is not set +# CONFIG_HID_VIEWSONIC is not set +# CONFIG_HID_GYRATION is not set +# CONFIG_HID_ICADE is not set +# CONFIG_HID_ITE is not set +# CONFIG_HID_JABRA is not set +# CONFIG_HID_TWINHAN is not set +# CONFIG_HID_KENSINGTON is not set +# CONFIG_HID_LCPOWER is not set +# CONFIG_HID_LENOVO is not set +# CONFIG_HID_MAGICMOUSE is not set +# CONFIG_HID_MALTRON is not set +# CONFIG_HID_MAYFLASH is not set +# CONFIG_HID_REDRAGON is not set +# CONFIG_HID_MICROSOFT is not set +# CONFIG_HID_MONTEREY is not set +# CONFIG_HID_MULTITOUCH is not set +# CONFIG_HID_NTI is not set +# CONFIG_HID_ORTEK is not set +# CONFIG_HID_PANTHERLORD is not set +# CONFIG_HID_PETALYNX is not set +# CONFIG_HID_PICOLCD is not set +# CONFIG_HID_PLANTRONICS is not set +# CONFIG_HID_PLAYSTATION is not set +# CONFIG_HID_PRIMAX is not set +# CONFIG_HID_SAITEK is not set +# CONFIG_HID_SEMITEK is not set +# CONFIG_HID_SPEEDLINK is not set +# CONFIG_HID_STEAM is not set +# CONFIG_HID_STEELSERIES is not set +# CONFIG_HID_SUNPLUS is not set +# CONFIG_HID_RMI is not set +# CONFIG_HID_GREENASIA is not set +# CONFIG_HID_SMARTJOYPLUS is not set +# CONFIG_HID_TIVO is not set +# CONFIG_HID_TOPSEED is not set +# CONFIG_HID_UDRAW_PS3 is not set +# CONFIG_HID_XINMO is not set +# CONFIG_HID_ZEROPLUS is not set +# CONFIG_HID_ZYDACRON is not set +# CONFIG_HID_SENSOR_HUB is not set +# CONFIG_HID_ALPS is not set +# end of Special HID drivers + +# +# Intel ISH HID support +# +# CONFIG_INTEL_ISH_HID is not set +# end of Intel ISH HID support + +# +# AMD SFH HID Support +# +# CONFIG_AMD_SFH_HID is not set +# end of AMD SFH HID Support +# end of HID support + +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +# CONFIG_USB_SUPPORT is not set +# CONFIG_MMC is not set +# CONFIG_MEMSTICK is not set +# CONFIG_NEW_LEDS is not set +# CONFIG_ACCESSIBILITY is not set +CONFIG_EDAC_ATOMIC_SCRUB=y +CONFIG_EDAC_SUPPORT=y +CONFIG_RTC_LIB=y +CONFIG_RTC_MC146818_LIB=y +# CONFIG_RTC_CLASS is not set +# CONFIG_DMADEVICES is not set + +# +# DMABUF options +# +CONFIG_SYNC_FILE=y +CONFIG_SW_SYNC=y +CONFIG_UDMABUF=y +# CONFIG_DMABUF_MOVE_NOTIFY is not set +# CONFIG_DMABUF_DEBUG is not set +# CONFIG_DMABUF_SELFTESTS is not set +CONFIG_DMABUF_HEAPS=y +# CONFIG_DMABUF_SYSFS_STATS is not set +CONFIG_DMABUF_HEAPS_SYSTEM=y +# end of DMABUF options + +# CONFIG_AUXDISPLAY is not set +# CONFIG_UIO is not set +# CONFIG_VFIO is not set +# CONFIG_VIRT_DRIVERS is not set +# CONFIG_VIRTIO_MENU is not set +# CONFIG_VHOST_MENU is not set + +# +# Microsoft Hyper-V guest support +# +# end of Microsoft Hyper-V guest support + +# CONFIG_GREYBUS is not set +# CONFIG_COMEDI is not set +# CONFIG_STAGING is not set +CONFIG_X86_PLATFORM_DEVICES=y +# CONFIG_X86_PLATFORM_DRIVERS_DELL is not set +# CONFIG_IBM_RTL is not set +# CONFIG_SENSORS_HDAPS is not set + +# +# Intel Speed Select Technology interface support +# +# CONFIG_INTEL_SPEED_SELECT_INTERFACE is not set +# end of Intel Speed Select Technology interface support + +# CONFIG_INTEL_PUNIT_IPC is not set +# CONFIG_INTEL_TURBO_MAX_3 is not set +# CONFIG_INTEL_UNCORE_FREQ_CONTROL is not set +# CONFIG_INTEL_SCU_PCI is not set +CONFIG_PMC_ATOM=y +# CONFIG_CHROME_PLATFORMS is not set +# CONFIG_MELLANOX_PLATFORM is not set +CONFIG_HAVE_CLK=y +CONFIG_HAVE_CLK_PREPARE=y +CONFIG_COMMON_CLK=y + +# +# Clock driver for ARM Reference designs +# +# CONFIG_ICST is not set +# CONFIG_CLK_SP810 is not set +# end of Clock driver for ARM Reference designs + +# CONFIG_XILINX_VCU is not set +# CONFIG_HWSPINLOCK is not set + +# +# Clock Source drivers +# +CONFIG_CLKEVT_I8253=y +CONFIG_I8253_LOCK=y +CONFIG_CLKBLD_I8253=y +# end of Clock Source drivers + +# CONFIG_MAILBOX is not set +# CONFIG_IOMMU_SUPPORT is not set + +# +# Remoteproc drivers +# +# CONFIG_REMOTEPROC is not set +# end of Remoteproc drivers + +# +# Rpmsg drivers +# +# CONFIG_RPMSG_VIRTIO is not set +# end of Rpmsg drivers + +# +# SOC (System On Chip) specific Drivers +# + +# +# Amlogic SoC drivers +# +# end of Amlogic SoC drivers + +# +# Broadcom SoC drivers +# +# end of Broadcom SoC drivers + +# +# NXP/Freescale QorIQ SoC drivers +# +# end of NXP/Freescale QorIQ SoC drivers + +# +# i.MX SoC drivers +# +# end of i.MX SoC drivers + +# +# Enable LiteX SoC Builder specific drivers +# +# end of Enable LiteX SoC Builder specific drivers + +# +# Qualcomm SoC drivers +# +# end of Qualcomm SoC drivers + +# CONFIG_SOC_TI is not set + +# +# Xilinx SoC drivers +# +# end of Xilinx SoC drivers +# end of SOC (System On Chip) specific Drivers + +# CONFIG_PM_DEVFREQ is not set +# CONFIG_EXTCON is not set +# CONFIG_MEMORY is not set +# CONFIG_IIO is not set +# CONFIG_NTB is not set +# CONFIG_VME_BUS is not set +# CONFIG_PWM is not set + +# +# IRQ chip support +# +CONFIG_MADERA_IRQ=m +# end of IRQ chip support + +# CONFIG_IPACK_BUS is not set +# CONFIG_RESET_CONTROLLER is not set + +# +# PHY Subsystem +# +# CONFIG_GENERIC_PHY is not set +# CONFIG_PHY_CAN_TRANSCEIVER is not set +# CONFIG_BCM_KONA_USB2_PHY is not set +# CONFIG_PHY_PXA_28NM_HSIC is not set +# CONFIG_PHY_PXA_28NM_USB2 is not set +# CONFIG_PHY_INTEL_LGM_EMMC is not set +# end of PHY Subsystem + +# CONFIG_POWERCAP is not set +# CONFIG_MCB is not set + +# +# Performance monitor support +# +# end of Performance monitor support + +# CONFIG_RAS is not set +# CONFIG_USB4 is not set + +# +# Android +# +# CONFIG_ANDROID is not set +# end of Android + +CONFIG_DAX=y +# CONFIG_NVMEM is not set + +# +# HW tracing support +# +# CONFIG_STM is not set +# CONFIG_INTEL_TH is not set +# end of HW tracing support + +# CONFIG_FPGA is not set +# CONFIG_TEE is not set +# CONFIG_SIOX is not set +# CONFIG_SLIMBUS is not set +# CONFIG_INTERCONNECT is not set +# CONFIG_COUNTER is not set +# CONFIG_MOST is not set +# end of Device Drivers + +# +# Ubuntu Supplied Third-Party Device Drivers +# +CONFIG_UBUNTU_ODM_DRIVERS=y +# CONFIG_UBUNTU_HOST is not set +# end of Ubuntu Supplied Third-Party Device Drivers + +# +# File systems +# +CONFIG_DCACHE_WORD_ACCESS=y +CONFIG_VALIDATE_FS_PARSER=y +CONFIG_FS_IOMAP=y +# CONFIG_EXT2_FS is not set +# CONFIG_EXT3_FS is not set +CONFIG_EXT4_FS=y +CONFIG_EXT4_USE_FOR_EXT2=y +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_EXT4_FS_SECURITY=y +# CONFIG_EXT4_DEBUG is not set +CONFIG_JBD2=y +# CONFIG_JBD2_DEBUG is not set +CONFIG_FS_MBCACHE=y +# CONFIG_REISERFS_FS is not set +# CONFIG_JFS_FS is not set +# CONFIG_XFS_FS is not set +# CONFIG_GFS2_FS is not set +# CONFIG_BTRFS_FS is not set +# CONFIG_NILFS2_FS is not set +# CONFIG_F2FS_FS is not set +CONFIG_FS_DAX=y +CONFIG_FS_POSIX_ACL=y +CONFIG_EXPORTFS=y +CONFIG_EXPORTFS_BLOCK_OPS=y +CONFIG_FILE_LOCKING=y +CONFIG_FS_ENCRYPTION=y +CONFIG_FS_ENCRYPTION_ALGS=y +CONFIG_FS_VERITY=y +# CONFIG_FS_VERITY_DEBUG is not set +CONFIG_FS_VERITY_BUILTIN_SIGNATURES=y +CONFIG_FSNOTIFY=y +CONFIG_DNOTIFY=y +CONFIG_INOTIFY_USER=y +CONFIG_FANOTIFY=y +CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y +# CONFIG_QUOTA is not set +CONFIG_AUTOFS4_FS=m +CONFIG_AUTOFS_FS=m +CONFIG_FUSE_FS=y +CONFIG_CUSE=m +# CONFIG_VIRTIO_FS is not set +# CONFIG_OVERLAY_FS is not set +# CONFIG_SHIFT_FS is not set + +# +# Caches +# +CONFIG_NETFS_SUPPORT=m +CONFIG_NETFS_STATS=y +CONFIG_FSCACHE=m +CONFIG_FSCACHE_STATS=y +# CONFIG_FSCACHE_DEBUG is not set +CONFIG_CACHEFILES=m +# CONFIG_CACHEFILES_DEBUG is not set +# end of Caches + +# +# CD-ROM/DVD Filesystems +# +# CONFIG_ISO9660_FS is not set +# CONFIG_UDF_FS is not set +# end of CD-ROM/DVD Filesystems + +# +# DOS/FAT/EXFAT/NT Filesystems +# +CONFIG_FAT_FS=y +CONFIG_MSDOS_FS=m +CONFIG_VFAT_FS=y +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +# CONFIG_FAT_DEFAULT_UTF8 is not set +CONFIG_EXFAT_FS=m +CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8" +# CONFIG_NTFS_FS is not set +# CONFIG_NTFS3_FS is not set +# end of DOS/FAT/EXFAT/NT Filesystems + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_KCORE=y +CONFIG_PROC_VMCORE=y +CONFIG_PROC_VMCORE_DEVICE_DUMP=y +CONFIG_PROC_SYSCTL=y +CONFIG_PROC_PAGE_MONITOR=y +CONFIG_PROC_CHILDREN=y +CONFIG_PROC_PID_ARCH_STATUS=y +CONFIG_PROC_CPU_RESCTRL=y +CONFIG_KERNFS=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_TMPFS_XATTR=y +CONFIG_TMPFS_INODE64=y +CONFIG_HUGETLBFS=y +CONFIG_HUGETLB_PAGE=y +CONFIG_HUGETLB_PAGE_FREE_VMEMMAP=y +# CONFIG_HUGETLB_PAGE_FREE_VMEMMAP_DEFAULT_ON is not set +CONFIG_MEMFD_CREATE=y +CONFIG_ARCH_HAS_GIGANTIC_PAGE=y +CONFIG_CONFIGFS_FS=y +# end of Pseudo filesystems + +# CONFIG_MISC_FILESYSTEMS is not set +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="utf8" +CONFIG_NLS_CODEPAGE_437=y +# CONFIG_NLS_CODEPAGE_737 is not set +# CONFIG_NLS_CODEPAGE_775 is not set +# CONFIG_NLS_CODEPAGE_850 is not set +# CONFIG_NLS_CODEPAGE_852 is not set +# CONFIG_NLS_CODEPAGE_855 is not set +# CONFIG_NLS_CODEPAGE_857 is not set +# CONFIG_NLS_CODEPAGE_860 is not set +# CONFIG_NLS_CODEPAGE_861 is not set +# CONFIG_NLS_CODEPAGE_862 is not set +# CONFIG_NLS_CODEPAGE_863 is not set +# CONFIG_NLS_CODEPAGE_864 is not set +# CONFIG_NLS_CODEPAGE_865 is not set +# CONFIG_NLS_CODEPAGE_866 is not set +# CONFIG_NLS_CODEPAGE_869 is not set +# CONFIG_NLS_CODEPAGE_936 is not set +# CONFIG_NLS_CODEPAGE_950 is not set +# CONFIG_NLS_CODEPAGE_932 is not set +# CONFIG_NLS_CODEPAGE_949 is not set +# CONFIG_NLS_CODEPAGE_874 is not set +# CONFIG_NLS_ISO8859_8 is not set +# CONFIG_NLS_CODEPAGE_1250 is not set +# CONFIG_NLS_CODEPAGE_1251 is not set +# CONFIG_NLS_ASCII is not set +# CONFIG_NLS_ISO8859_1 is not set +# CONFIG_NLS_ISO8859_2 is not set +# CONFIG_NLS_ISO8859_3 is not set +# CONFIG_NLS_ISO8859_4 is not set +# CONFIG_NLS_ISO8859_5 is not set +# CONFIG_NLS_ISO8859_6 is not set +# CONFIG_NLS_ISO8859_7 is not set +# CONFIG_NLS_ISO8859_9 is not set +# CONFIG_NLS_ISO8859_13 is not set +# CONFIG_NLS_ISO8859_14 is not set +# CONFIG_NLS_ISO8859_15 is not set +# CONFIG_NLS_KOI8_R is not set +# CONFIG_NLS_KOI8_U is not set +# CONFIG_NLS_MAC_ROMAN is not set +# CONFIG_NLS_MAC_CELTIC is not set +# CONFIG_NLS_MAC_CENTEURO is not set +# CONFIG_NLS_MAC_CROATIAN is not set +# CONFIG_NLS_MAC_CYRILLIC is not set +# CONFIG_NLS_MAC_GAELIC is not set +# CONFIG_NLS_MAC_GREEK is not set +# CONFIG_NLS_MAC_ICELAND is not set +# CONFIG_NLS_MAC_INUIT is not set +# CONFIG_NLS_MAC_ROMANIAN is not set +# CONFIG_NLS_MAC_TURKISH is not set +# CONFIG_NLS_UTF8 is not set +CONFIG_UNICODE=y +# CONFIG_UNICODE_NORMALIZATION_SELFTEST is not set +CONFIG_IO_WQ=y +# end of File systems + +# +# Security options +# +CONFIG_KEYS=y +CONFIG_KEYS_REQUEST_CACHE=y +CONFIG_PERSISTENT_KEYRINGS=y +CONFIG_ENCRYPTED_KEYS=y +CONFIG_KEY_DH_OPERATIONS=y +CONFIG_KEY_NOTIFICATIONS=y +CONFIG_SECURITY_DMESG_RESTRICT=y +CONFIG_SECURITY_PERF_EVENTS_RESTRICT=y +CONFIG_SECURITY=y +CONFIG_SECURITYFS=y +CONFIG_SECURITY_NETWORK=y +CONFIG_SECURITY_PATH=y +CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y +CONFIG_HARDENED_USERCOPY=y +# CONFIG_HARDENED_USERCOPY_FALLBACK is not set +# CONFIG_HARDENED_USERCOPY_PAGESPAN is not set +CONFIG_FORTIFY_SOURCE=y +# CONFIG_STATIC_USERMODEHELPER is not set +# CONFIG_SECURITY_LOADPIN is not set +CONFIG_SECURITY_YAMA=y +CONFIG_SECURITY_SAFESETID=y +CONFIG_SECURITY_LOCKDOWN_LSM=y +CONFIG_SECURITY_LOCKDOWN_LSM_EARLY=y +CONFIG_LOCK_DOWN_KERNEL_FORCE_NONE=y +# CONFIG_LOCK_DOWN_KERNEL_FORCE_INTEGRITY is not set +# CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY is not set +# CONFIG_SECURITY_LANDLOCK is not set +# CONFIG_INTEGRITY is not set +CONFIG_DEFAULT_SECURITY_DAC=y +CONFIG_LSM="landlock,lockdown,yama,integrity,apparmor" + +# +# Kernel hardening options +# + +# +# Memory initialization +# +CONFIG_INIT_STACK_NONE=y +CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y +# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set +CONFIG_CC_HAS_ZERO_CALL_USED_REGS=y +# CONFIG_ZERO_CALL_USED_REGS is not set +# end of Memory initialization +# end of Kernel hardening options +# end of Security options + +CONFIG_XOR_BLOCKS=m +CONFIG_CRYPTO=y + +# +# Crypto core or helper +# +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_ALGAPI2=y +CONFIG_CRYPTO_AEAD2=y +CONFIG_CRYPTO_SKCIPHER=y +CONFIG_CRYPTO_SKCIPHER2=y +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_HASH2=y +CONFIG_CRYPTO_RNG=y +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_AKCIPHER2=y +CONFIG_CRYPTO_AKCIPHER=y +CONFIG_CRYPTO_KPP2=y +CONFIG_CRYPTO_KPP=y +CONFIG_CRYPTO_ACOMP2=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_MANAGER2=y +CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y +CONFIG_CRYPTO_NULL=y +CONFIG_CRYPTO_NULL2=y +# CONFIG_CRYPTO_PCRYPT is not set +CONFIG_CRYPTO_CRYPTD=m +# CONFIG_CRYPTO_AUTHENC is not set +# CONFIG_CRYPTO_TEST is not set + +# +# Public-key cryptography +# +CONFIG_CRYPTO_RSA=y +CONFIG_CRYPTO_DH=y +# CONFIG_CRYPTO_ECDH is not set +# CONFIG_CRYPTO_ECDSA is not set +# CONFIG_CRYPTO_ECRDSA is not set +# CONFIG_CRYPTO_SM2 is not set +# CONFIG_CRYPTO_CURVE25519 is not set +# CONFIG_CRYPTO_CURVE25519_X86 is not set + +# +# Authenticated Encryption with Associated Data +# +# CONFIG_CRYPTO_CCM is not set +# CONFIG_CRYPTO_GCM is not set +# CONFIG_CRYPTO_CHACHA20POLY1305 is not set +# CONFIG_CRYPTO_AEGIS128 is not set +# CONFIG_CRYPTO_AEGIS128_AESNI_SSE2 is not set +# CONFIG_CRYPTO_SEQIV is not set +# CONFIG_CRYPTO_ECHAINIV is not set + +# +# Block modes +# +CONFIG_CRYPTO_CBC=y +# CONFIG_CRYPTO_CFB is not set +CONFIG_CRYPTO_CTR=y +# CONFIG_CRYPTO_CTS is not set +CONFIG_CRYPTO_ECB=y +# CONFIG_CRYPTO_LRW is not set +# CONFIG_CRYPTO_OFB is not set +# CONFIG_CRYPTO_PCBC is not set +# CONFIG_CRYPTO_XTS is not set +# CONFIG_CRYPTO_KEYWRAP is not set +# CONFIG_CRYPTO_NHPOLY1305_SSE2 is not set +# CONFIG_CRYPTO_NHPOLY1305_AVX2 is not set +# CONFIG_CRYPTO_ADIANTUM is not set +# CONFIG_CRYPTO_ESSIV is not set + +# +# Hash modes +# +# CONFIG_CRYPTO_CMAC is not set +CONFIG_CRYPTO_HMAC=y +# CONFIG_CRYPTO_XCBC is not set +# CONFIG_CRYPTO_VMAC is not set + +# +# Digest +# +CONFIG_CRYPTO_CRC32C=y +CONFIG_CRYPTO_CRC32C_INTEL=y +# CONFIG_CRYPTO_CRC32 is not set +# CONFIG_CRYPTO_CRC32_PCLMUL is not set +# CONFIG_CRYPTO_XXHASH is not set +# CONFIG_CRYPTO_BLAKE2B is not set +# CONFIG_CRYPTO_BLAKE2S is not set +# CONFIG_CRYPTO_BLAKE2S_X86 is not set +CONFIG_CRYPTO_CRCT10DIF=y +# CONFIG_CRYPTO_CRCT10DIF_PCLMUL is not set +# CONFIG_CRYPTO_GHASH is not set +# CONFIG_CRYPTO_POLY1305 is not set +# CONFIG_CRYPTO_POLY1305_X86_64 is not set +# CONFIG_CRYPTO_MD4 is not set +# CONFIG_CRYPTO_MD5 is not set +# CONFIG_CRYPTO_MICHAEL_MIC is not set +# CONFIG_CRYPTO_RMD160 is not set +CONFIG_CRYPTO_SHA1=y +# CONFIG_CRYPTO_SHA1_SSSE3 is not set +# CONFIG_CRYPTO_SHA256_SSSE3 is not set +# CONFIG_CRYPTO_SHA512_SSSE3 is not set +CONFIG_CRYPTO_SHA256=y +CONFIG_CRYPTO_SHA512=y +# CONFIG_CRYPTO_SHA3 is not set +# CONFIG_CRYPTO_SM3 is not set +# CONFIG_CRYPTO_STREEBOG is not set +# CONFIG_CRYPTO_WP512 is not set +# CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL is not set + +# +# Ciphers +# +CONFIG_CRYPTO_AES=y +# CONFIG_CRYPTO_AES_TI is not set +# CONFIG_CRYPTO_AES_NI_INTEL is not set +# CONFIG_CRYPTO_BLOWFISH is not set +# CONFIG_CRYPTO_BLOWFISH_X86_64 is not set +# CONFIG_CRYPTO_CAMELLIA is not set +# CONFIG_CRYPTO_CAMELLIA_X86_64 is not set +# CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64 is not set +# CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64 is not set +# CONFIG_CRYPTO_CAST5 is not set +# CONFIG_CRYPTO_CAST5_AVX_X86_64 is not set +# CONFIG_CRYPTO_CAST6 is not set +# CONFIG_CRYPTO_CAST6_AVX_X86_64 is not set +# CONFIG_CRYPTO_DES is not set +# CONFIG_CRYPTO_DES3_EDE_X86_64 is not set +# CONFIG_CRYPTO_FCRYPT is not set +# CONFIG_CRYPTO_CHACHA20 is not set +# CONFIG_CRYPTO_CHACHA20_X86_64 is not set +CONFIG_CRYPTO_SERPENT=m +# CONFIG_CRYPTO_SERPENT_SSE2_X86_64 is not set +# CONFIG_CRYPTO_SERPENT_AVX_X86_64 is not set +# CONFIG_CRYPTO_SERPENT_AVX2_X86_64 is not set +# CONFIG_CRYPTO_SM4 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX_X86_64 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64 is not set +# CONFIG_CRYPTO_TWOFISH is not set +# CONFIG_CRYPTO_TWOFISH_X86_64 is not set +# CONFIG_CRYPTO_TWOFISH_X86_64_3WAY is not set +# CONFIG_CRYPTO_TWOFISH_AVX_X86_64 is not set + +# +# Compression +# +CONFIG_CRYPTO_DEFLATE=y +CONFIG_CRYPTO_LZO=y +# CONFIG_CRYPTO_842 is not set +# CONFIG_CRYPTO_LZ4 is not set +# CONFIG_CRYPTO_LZ4HC is not set +# CONFIG_CRYPTO_ZSTD is not set + +# +# Random Number Generation +# +# CONFIG_CRYPTO_ANSI_CPRNG is not set +# CONFIG_CRYPTO_DRBG_MENU is not set +# CONFIG_CRYPTO_JITTERENTROPY is not set +CONFIG_CRYPTO_HASH_INFO=y +# CONFIG_CRYPTO_HW is not set +CONFIG_ASYMMETRIC_KEY_TYPE=y +CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y +CONFIG_X509_CERTIFICATE_PARSER=y +CONFIG_PKCS8_PRIVATE_KEY_PARSER=m +CONFIG_PKCS7_MESSAGE_PARSER=y +CONFIG_PKCS7_TEST_KEY=m +CONFIG_SIGNED_PE_FILE_VERIFICATION=y + +# +# Certificates for signature checking +# +CONFIG_MODULE_SIG_KEY="certs/signing_key.pem" +CONFIG_MODULE_SIG_KEY_TYPE_RSA=y +# CONFIG_MODULE_SIG_KEY_TYPE_ECDSA is not set +CONFIG_SYSTEM_TRUSTED_KEYRING=y +CONFIG_SYSTEM_TRUSTED_KEYS="debian/canonical-certs.pem" +CONFIG_SYSTEM_EXTRA_CERTIFICATE=y +CONFIG_SYSTEM_EXTRA_CERTIFICATE_SIZE=4096 +CONFIG_SECONDARY_TRUSTED_KEYRING=y +CONFIG_SYSTEM_BLACKLIST_KEYRING=y +CONFIG_SYSTEM_BLACKLIST_HASH_LIST="" +CONFIG_SYSTEM_REVOCATION_LIST=y +CONFIG_SYSTEM_REVOCATION_KEYS="debian/canonical-revoked-certs.pem" +# end of Certificates for signature checking + +CONFIG_BINARY_PRINTF=y + +# +# Library routines +# +CONFIG_PACKING=y +CONFIG_BITREVERSE=y +CONFIG_GENERIC_STRNCPY_FROM_USER=y +CONFIG_GENERIC_STRNLEN_USER=y +CONFIG_GENERIC_FIND_FIRST_BIT=y +CONFIG_CORDIC=m +# CONFIG_PRIME_NUMBERS is not set +CONFIG_RATIONAL=y +CONFIG_GENERIC_PCI_IOMAP=y +CONFIG_GENERIC_IOMAP=y +CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y +CONFIG_ARCH_HAS_FAST_MULTIPLIER=y +CONFIG_ARCH_USE_SYM_ANNOTATIONS=y + +# +# Crypto library routines +# +CONFIG_CRYPTO_LIB_AES=y +CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y +CONFIG_CRYPTO_LIB_CHACHA_GENERIC=m +CONFIG_CRYPTO_LIB_CHACHA=m +CONFIG_CRYPTO_LIB_CURVE25519_GENERIC=m +CONFIG_CRYPTO_LIB_CURVE25519=m +CONFIG_CRYPTO_LIB_POLY1305_RSIZE=11 +CONFIG_CRYPTO_LIB_POLY1305_GENERIC=m +CONFIG_CRYPTO_LIB_POLY1305=m +CONFIG_CRYPTO_LIB_CHACHA20POLY1305=m +CONFIG_CRYPTO_LIB_SHA256=y +# end of Crypto library routines + +CONFIG_LIB_MEMNEQ=y +CONFIG_CRC_CCITT=y +CONFIG_CRC16=y +CONFIG_CRC_T10DIF=y +CONFIG_CRC_ITU_T=m +CONFIG_CRC32=y +# CONFIG_CRC32_SELFTEST is not set +CONFIG_CRC32_SLICEBY8=y +# CONFIG_CRC32_SLICEBY4 is not set +# CONFIG_CRC32_SARWATE is not set +# CONFIG_CRC32_BIT is not set +CONFIG_CRC64=m +CONFIG_CRC4=m +CONFIG_CRC7=m +CONFIG_LIBCRC32C=m +CONFIG_CRC8=m +CONFIG_XXHASH=y +# CONFIG_RANDOM32_SELFTEST is not set +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y +CONFIG_LZO_COMPRESS=y +CONFIG_LZO_DECOMPRESS=y +CONFIG_LZ4_DECOMPRESS=y +CONFIG_ZSTD_DECOMPRESS=y +CONFIG_XZ_DEC=y +CONFIG_XZ_DEC_X86=y +CONFIG_XZ_DEC_POWERPC=y +CONFIG_XZ_DEC_IA64=y +CONFIG_XZ_DEC_ARM=y +CONFIG_XZ_DEC_ARMTHUMB=y +CONFIG_XZ_DEC_SPARC=y +CONFIG_XZ_DEC_BCJ=y +CONFIG_XZ_DEC_TEST=m +CONFIG_DECOMPRESS_GZIP=y +CONFIG_DECOMPRESS_BZIP2=y +CONFIG_DECOMPRESS_LZMA=y +CONFIG_DECOMPRESS_XZ=y +CONFIG_DECOMPRESS_LZO=y +CONFIG_DECOMPRESS_LZ4=y +CONFIG_DECOMPRESS_ZSTD=y +CONFIG_INTERVAL_TREE=y +CONFIG_ASSOCIATIVE_ARRAY=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT_MAP=y +CONFIG_HAS_DMA=y +CONFIG_NEED_SG_DMA_LENGTH=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_ARCH_DMA_ADDR_T_64BIT=y +CONFIG_SWIOTLB=y +# CONFIG_DMA_API_DEBUG is not set +# CONFIG_DMA_MAP_BENCHMARK is not set +CONFIG_SGL_ALLOC=y +CONFIG_CPUMASK_OFFSTACK=y +CONFIG_CLZ_TAB=y +CONFIG_IRQ_POLL=y +CONFIG_MPILIB=y +CONFIG_OID_REGISTRY=y +CONFIG_HAVE_GENERIC_VDSO=y +CONFIG_GENERIC_GETTIMEOFDAY=y +CONFIG_GENERIC_VDSO_TIME_NS=y +CONFIG_ARCH_HAS_PMEM_API=y +CONFIG_ARCH_HAS_UACCESS_FLUSHCACHE=y +CONFIG_ARCH_HAS_COPY_MC=y +CONFIG_ARCH_STACKWALK=y +CONFIG_SBITMAP=y +# end of Library routines + +# +# Kernel hacking +# + +# +# printk and dmesg options +# +CONFIG_PRINTK_TIME=y +# CONFIG_PRINTK_CALLER is not set +# CONFIG_STACKTRACE_BUILD_ID is not set +CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 +CONFIG_CONSOLE_LOGLEVEL_QUIET=4 +CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 +CONFIG_BOOT_PRINTK_DELAY=y +CONFIG_DYNAMIC_DEBUG=y +CONFIG_DYNAMIC_DEBUG_CORE=y +CONFIG_SYMBOLIC_ERRNAME=y +CONFIG_DEBUG_BUGVERBOSE=y +# end of printk and dmesg options + +# +# Compile-time checks and compiler options +# +# CONFIG_DEBUG_INFO is not set +CONFIG_FRAME_WARN=1024 +# CONFIG_STRIP_ASM_SYMS is not set +# CONFIG_READABLE_ASM is not set +# CONFIG_HEADERS_INSTALL is not set +# CONFIG_DEBUG_SECTION_MISMATCH is not set +CONFIG_SECTION_MISMATCH_WARN_ONLY=y +# CONFIG_DEBUG_FORCE_FUNCTION_ALIGN_64B is not set +CONFIG_FRAME_POINTER=y +CONFIG_STACK_VALIDATION=y +CONFIG_VMLINUX_MAP=y +# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +# end of Compile-time checks and compiler options + +# +# Generic Kernel Debugging Instruments +# +CONFIG_MAGIC_SYSRQ=y +CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x01b6 +CONFIG_MAGIC_SYSRQ_SERIAL=y +CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE="" +CONFIG_DEBUG_FS=y +CONFIG_DEBUG_FS_ALLOW_ALL=y +# CONFIG_DEBUG_FS_DISALLOW_MOUNT is not set +# CONFIG_DEBUG_FS_ALLOW_NONE is not set +CONFIG_HAVE_ARCH_KGDB=y +CONFIG_KGDB=y +CONFIG_KGDB_HONOUR_BLOCKLIST=y +CONFIG_KGDB_SERIAL_CONSOLE=y +# CONFIG_KGDB_TESTS is not set +CONFIG_KGDB_LOW_LEVEL_TRAP=y +CONFIG_KGDB_KDB=y +CONFIG_KDB_DEFAULT_ENABLE=0x1 +CONFIG_KDB_KEYBOARD=y +CONFIG_KDB_CONTINUE_CATASTROPHIC=0 +CONFIG_ARCH_HAS_EARLY_DEBUG=y +CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y +CONFIG_UBSAN=y +# CONFIG_UBSAN_TRAP is not set +CONFIG_CC_HAS_UBSAN_BOUNDS=y +CONFIG_UBSAN_BOUNDS=y +CONFIG_UBSAN_ONLY_BOUNDS=y +CONFIG_UBSAN_SHIFT=y +# CONFIG_UBSAN_DIV_ZERO is not set +CONFIG_UBSAN_BOOL=y +CONFIG_UBSAN_ENUM=y +# CONFIG_UBSAN_ALIGNMENT is not set +CONFIG_UBSAN_SANITIZE_ALL=y +# CONFIG_TEST_UBSAN is not set +CONFIG_HAVE_ARCH_KCSAN=y +CONFIG_HAVE_KCSAN_COMPILER=y +# CONFIG_KCSAN is not set +# end of Generic Kernel Debugging Instruments + +CONFIG_DEBUG_KERNEL=y +CONFIG_DEBUG_MISC=y + +# +# Memory Debugging +# +# CONFIG_PAGE_EXTENSION is not set +# CONFIG_DEBUG_PAGEALLOC is not set +# CONFIG_PAGE_OWNER is not set +CONFIG_PAGE_POISONING=y +# CONFIG_DEBUG_RODATA_TEST is not set +CONFIG_ARCH_HAS_DEBUG_WX=y +CONFIG_DEBUG_WX=y +CONFIG_GENERIC_PTDUMP=y +CONFIG_PTDUMP_CORE=y +# CONFIG_PTDUMP_DEBUGFS is not set +# CONFIG_DEBUG_OBJECTS is not set +# CONFIG_SLUB_DEBUG_ON is not set +# CONFIG_SLUB_STATS is not set +CONFIG_HAVE_DEBUG_KMEMLEAK=y +# CONFIG_DEBUG_KMEMLEAK is not set +# CONFIG_DEBUG_STACK_USAGE is not set +CONFIG_SCHED_STACK_END_CHECK=y +CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_VM_PGTABLE is not set +CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y +# CONFIG_DEBUG_VIRTUAL is not set +# CONFIG_DEBUG_MEMORY_INIT is not set +# CONFIG_DEBUG_PER_CPU_MAPS is not set +CONFIG_HAVE_ARCH_KASAN=y +CONFIG_HAVE_ARCH_KASAN_VMALLOC=y +CONFIG_CC_HAS_KASAN_GENERIC=y +CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y +# CONFIG_KASAN is not set +CONFIG_HAVE_ARCH_KFENCE=y +CONFIG_KFENCE=y +CONFIG_KFENCE_SAMPLE_INTERVAL=0 +CONFIG_KFENCE_NUM_OBJECTS=255 +CONFIG_KFENCE_STRESS_TEST_FAULTS=0 +# end of Memory Debugging + +# CONFIG_DEBUG_SHIRQ is not set + +# +# Debug Oops, Lockups and Hangs +# +# CONFIG_PANIC_ON_OOPS is not set +CONFIG_PANIC_ON_OOPS_VALUE=0 +CONFIG_PANIC_TIMEOUT=0 +CONFIG_LOCKUP_DETECTOR=y +CONFIG_SOFTLOCKUP_DETECTOR=y +# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set +CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 +CONFIG_HARDLOCKUP_DETECTOR_PERF=y +CONFIG_HARDLOCKUP_CHECK_TIMESTAMP=y +CONFIG_HARDLOCKUP_DETECTOR=y +# CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set +CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=0 +CONFIG_DETECT_HUNG_TASK=y +CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 +# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set +CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 +# CONFIG_WQ_WATCHDOG is not set +# CONFIG_TEST_LOCKUP is not set +# end of Debug Oops, Lockups and Hangs + +# +# Scheduler Debugging +# +CONFIG_SCHED_DEBUG=y +CONFIG_SCHED_INFO=y +CONFIG_SCHEDSTATS=y +# end of Scheduler Debugging + +# CONFIG_DEBUG_TIMEKEEPING is not set + +# +# Lock Debugging (spinlocks, mutexes, etc...) +# +CONFIG_LOCK_DEBUGGING_SUPPORT=y +# CONFIG_PROVE_LOCKING is not set +# CONFIG_LOCK_STAT is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set +# CONFIG_DEBUG_RWSEMS is not set +# CONFIG_DEBUG_LOCK_ALLOC is not set +# CONFIG_DEBUG_ATOMIC_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_LOCK_TORTURE_TEST is not set +# CONFIG_WW_MUTEX_SELFTEST is not set +# CONFIG_SCF_TORTURE_TEST is not set +# CONFIG_CSD_LOCK_WAIT_DEBUG is not set +# end of Lock Debugging (spinlocks, mutexes, etc...) + +# CONFIG_DEBUG_IRQFLAGS is not set +CONFIG_STACKTRACE=y +# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set +# CONFIG_DEBUG_KOBJECT is not set + +# +# Debug kernel data structures +# +# CONFIG_DEBUG_LIST is not set +# CONFIG_DEBUG_PLIST is not set +# CONFIG_DEBUG_SG is not set +# CONFIG_DEBUG_NOTIFIERS is not set +# CONFIG_BUG_ON_DATA_CORRUPTION is not set +# end of Debug kernel data structures + +# CONFIG_DEBUG_CREDENTIALS is not set + +# +# RCU Debugging +# +# CONFIG_RCU_SCALE_TEST is not set +# CONFIG_RCU_TORTURE_TEST is not set +# CONFIG_RCU_REF_SCALE_TEST is not set +CONFIG_RCU_CPU_STALL_TIMEOUT=60 +# CONFIG_RCU_TRACE is not set +# CONFIG_RCU_EQS_DEBUG is not set +# end of RCU Debugging + +# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set +# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set +# CONFIG_LATENCYTOP is not set +CONFIG_USER_STACKTRACE_SUPPORT=y +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y +CONFIG_HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS=y +CONFIG_HAVE_DYNAMIC_FTRACE_WITH_ARGS=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_SYSCALL_TRACEPOINTS=y +CONFIG_HAVE_FENTRY=y +CONFIG_HAVE_OBJTOOL_MCOUNT=y +CONFIG_HAVE_C_RECORDMCOUNT=y +CONFIG_TRACING_SUPPORT=y +# CONFIG_FTRACE is not set +# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set +CONFIG_SAMPLES=y +# CONFIG_SAMPLE_AUXDISPLAY is not set +# CONFIG_SAMPLE_KOBJECT is not set +# CONFIG_SAMPLE_KPROBES is not set +# CONFIG_SAMPLE_HW_BREAKPOINT is not set +# CONFIG_SAMPLE_KFIFO is not set +# CONFIG_SAMPLE_KDB is not set +# CONFIG_SAMPLE_CONFIGFS is not set +# CONFIG_SAMPLE_WATCHDOG is not set +CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y +CONFIG_STRICT_DEVMEM=y +# CONFIG_IO_STRICT_DEVMEM is not set + +# +# x86 Debugging +# +CONFIG_TRACE_IRQFLAGS_NMI_SUPPORT=y +# CONFIG_X86_VERBOSE_BOOTUP is not set +CONFIG_EARLY_PRINTK=y +# CONFIG_EARLY_PRINTK_DBGP is not set +# CONFIG_EARLY_PRINTK_USB_XDBC is not set +# CONFIG_DEBUG_TLBFLUSH is not set +CONFIG_HAVE_MMIOTRACE_SUPPORT=y +# CONFIG_X86_DECODER_SELFTEST is not set +# CONFIG_IO_DELAY_0X80 is not set +CONFIG_IO_DELAY_0XED=y +# CONFIG_IO_DELAY_UDELAY is not set +# CONFIG_IO_DELAY_NONE is not set +# CONFIG_DEBUG_BOOT_PARAMS is not set +# CONFIG_CPA_DEBUG is not set +# CONFIG_DEBUG_ENTRY is not set +# CONFIG_DEBUG_NMI_SELFTEST is not set +CONFIG_X86_DEBUG_FPU=y +# CONFIG_PUNIT_ATOM_DEBUG is not set +# CONFIG_UNWINDER_ORC is not set +CONFIG_UNWINDER_FRAME_POINTER=y +# CONFIG_UNWINDER_GUESS is not set +# end of x86 Debugging + +# +# Kernel Testing and Coverage +# +# CONFIG_KUNIT is not set +CONFIG_NOTIFIER_ERROR_INJECTION=m +CONFIG_PM_NOTIFIER_ERROR_INJECT=m +CONFIG_FUNCTION_ERROR_INJECTION=y +# CONFIG_FAULT_INJECTION is not set +CONFIG_ARCH_HAS_KCOV=y +CONFIG_CC_HAS_SANCOV_TRACE_PC=y +# CONFIG_KCOV is not set +CONFIG_RUNTIME_TESTING_MENU=y +# CONFIG_LKDTM is not set +# CONFIG_TEST_MIN_HEAP is not set +# CONFIG_TEST_DIV64 is not set +# CONFIG_KPROBES_SANITY_TEST is not set +# CONFIG_BACKTRACE_SELF_TEST is not set +# CONFIG_RBTREE_TEST is not set +# CONFIG_REED_SOLOMON_TEST is not set +# CONFIG_INTERVAL_TREE_TEST is not set +# CONFIG_PERCPU_TEST is not set +# CONFIG_ATOMIC64_SELFTEST is not set +# CONFIG_TEST_HEXDUMP is not set +# CONFIG_STRING_SELFTEST is not set +# CONFIG_TEST_STRING_HELPERS is not set +# CONFIG_TEST_STRSCPY is not set +# CONFIG_TEST_KSTRTOX is not set +# CONFIG_TEST_PRINTF is not set +# CONFIG_TEST_SCANF is not set +# CONFIG_TEST_BITMAP is not set +# CONFIG_TEST_UUID is not set +# CONFIG_TEST_XARRAY is not set +# CONFIG_TEST_OVERFLOW is not set +# CONFIG_TEST_RHASHTABLE is not set +# CONFIG_TEST_HASH is not set +# CONFIG_TEST_IDA is not set +# CONFIG_TEST_LKM is not set +# CONFIG_TEST_BITOPS is not set +# CONFIG_TEST_VMALLOC is not set +# CONFIG_TEST_USER_COPY is not set +# CONFIG_FIND_BIT_BENCHMARK is not set +# CONFIG_TEST_FIRMWARE is not set +# CONFIG_TEST_SYSCTL is not set +# CONFIG_TEST_UDELAY is not set +# CONFIG_TEST_STATIC_KEYS is not set +# CONFIG_TEST_MEMCAT_P is not set +# CONFIG_TEST_STACKINIT is not set +# CONFIG_TEST_MEMINIT is not set +# CONFIG_TEST_FREE_PAGES is not set +# CONFIG_TEST_FPU is not set +# CONFIG_TEST_CLOCKSOURCE_WATCHDOG is not set +CONFIG_ARCH_USE_MEMTEST=y +CONFIG_MEMTEST=y +# end of Kernel Testing and Coverage +# end of Kernel hacking diff --git a/tests/spread/core24-suites/plugins/kernel/snapcraft.yaml b/tests/spread/core24-suites/plugins/kernel/snapcraft.yaml new file mode 100644 index 0000000000..c46b2f1dfc --- /dev/null +++ b/tests/spread/core24-suites/plugins/kernel/snapcraft.yaml @@ -0,0 +1,73 @@ +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2021 Canonical Ltd +name: pc-kernel +summary: Kernel plugin test +description: A stripped-down pc kernel to test the kernel plugin. + +grade: stable +build-base: core24 +confinement: strict +type: kernel +adopt-info: kernel + +architectures: + - build-on: [amd64] + build-for: amd64 + +parts: + kernel: + plugin: kernel + source: https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/jammy + source-depth: 1 + source-type: git + source-branch: master + stage-packages: + - linux-firmware + - wireless-regdb + kernel-kconfigfile: $SNAPCRAFT_PROJECT_DIR/config + kernel-kconfigflavour: "generic" + kernel-with-firmware: false + kernel-enable-zfs-support: true + kernel-build-efi-image: true + kernel-image-target: + amd64: bzImage + arm64: Image + armhf: zImage + kernel-initrd-firmware: + - firmware/regulatory.db + - firmware/regulatory.db.p7s + kernel-kconfigs: + - CONFIG_DEBUG_INFO=n + build-environment: + - PATH: "/usr/lib/ccache:${PATH}" + override-build: | + cd ${CRAFT_PART_SRC} + fakeroot ./debian/rules clean + cd ${CRAFT_PART_BUILD} + echo "Building kernel" + craftctl default + craftctl set version=$(git --git-dir=${CRAFT_PART_SRC}/.git describe --tags | cut -c 8-38) + override-prime: | + craftctl default + # Trim firmware + mkdir -p ${CRAFT_PRIME}/firmware.new + trim_tool="https://git.launchpad.net/~canonical-kernel-snaps/+git/kernel-snaps-uc22/plain/trim-firmware" + curl -s ${trim_tool} | bash -x /dev/stdin ${CRAFT_PRIME} + stage: + - -*Image-* + - -initrd* + - -kernel.img* + +build-packages: + - bison + - cpio + - curl + - debhelper + - dpkg-dev + - fakeroot + - flex + - gcc + - libfdt-dev + - libssl-dev + - libelf-dev + - sbsigntool diff --git a/tests/spread/core24-suites/plugins/kernel/task.yaml b/tests/spread/core24-suites/plugins/kernel/task.yaml new file mode 100644 index 0000000000..97474f2dc5 --- /dev/null +++ b/tests/spread/core24-suites/plugins/kernel/task.yaml @@ -0,0 +1,18 @@ +summary: Craft Parts kernel plugin test +manual: true +kill-timeout: 180m + +systems: + - ubuntu-22.04-64 + +restore: | + snapcraft clean --enable-experimental-plugins + rm -f ./*.snap + +execute: | + # Unset SNAPCRAFT_BUILD_ENVIRONMENT=host. + unset SNAPCRAFT_BUILD_ENVIRONMENT + + rm -f ./*.snap + snapcraft --enable-experimental-plugins + ls -l pc-kernel_*_amd64.snap diff --git a/tests/spread/core24-suites/plugins/matter-sdk/snapcraft.yaml b/tests/spread/core24-suites/plugins/matter-sdk/snapcraft.yaml new file mode 100644 index 0000000000..3ed895a756 --- /dev/null +++ b/tests/spread/core24-suites/plugins/matter-sdk/snapcraft.yaml @@ -0,0 +1,47 @@ +name: matter-lighting +summary: Matter plugin test +description: An lighting application to test the matter plugin. +version: "1.0" + +base: core24 + +grade: stable +confinement: strict + +layout: + /mnt: + bind: $SNAP_COMMON/mnt + +apps: + matter-lighting: + daemon: simple + command: bin/lighting-app + install-mode: disable + plugs: + - network + - network-bind + - bluez + - avahi-control + +parts: + matter-sdk: + plugin: matter-sdk + matter-sdk-version: "1536ca20c5917578ca40ce509400e97b52751788" # use this commit with ptpython version fix; needs to be updated once matter sdk have a stable release + + lighting: + plugin: nil + after: [matter-sdk] + override-build: | + # Source the Matter SDK environment variables + source $CRAFT_STAGE/matter-sdk-env.sh + + # Build the lighting app for snapcraft spread testing purposes + cd ../../matter-sdk/build/examples/lighting-app/linux + gn gen out/build + ninja -C out/build + + ldd out/build/chip-lighting-app + + mkdir -p $CRAFT_PART_INSTALL/bin + cp out/build/chip-lighting-app $CRAFT_PART_INSTALL/bin/lighting-app + diff --git a/tests/spread/core24-suites/plugins/matter-sdk/task.yaml b/tests/spread/core24-suites/plugins/matter-sdk/task.yaml new file mode 100644 index 0000000000..f293c114cd --- /dev/null +++ b/tests/spread/core24-suites/plugins/matter-sdk/task.yaml @@ -0,0 +1,50 @@ +summary: Craft Parts matter SDK plugin test +manual: true +kill-timeout: 180m + +systems: + - ubuntu-22.04-64 + +prepare: | + #shellcheck source=tests/spread/tools/snapcraft-yaml.sh + . "$TOOLS_DIR/snapcraft-yaml.sh" + set_base "$SNAP/snap/snapcraft.yaml" + +restore: | + cd "$SNAP" + snapcraft clean + rm -f ./*.snap + + #shellcheck source=tests/spread/tools/snapcraft-yaml.sh + . "$TOOLS_DIR/snapcraft-yaml.sh" + restore_yaml "snap/snapcraft.yaml" + +execute: | + cd "$SNAP" + + # Build and install the snap + snapcraft + snap install "${SNAP}*.snap" --dangerous + + start_time=$(date +"%Y-%m-%d %H:%M:%S") + snap start matter-lighting + + # Check if storage path replacement from /tmp to SNAP_COMMON/mnt works + for file in /tmp/chip_*; do + if [ -e "$file" ]; then + echo "Error: $file should not exist." + exit 1 + fi + done + + if [ ! -e "${SNAP_COMMON/mnt/chip_*}" ]; then + echo "Error: ${SNAP_COMMON}/mnt/chip_* does not exist." + exit 1 + fi + + # Check if server initialization is complete for matter-lighting + if ! journalctl --since "$start_time" | grep matter-lighting | grep "CHIP:SVR: Server initialization complete"; then + echo "Error: matter-lighting initialization failed." + exit 1 + fi + \ No newline at end of file diff --git a/tests/spread/core24/python-hello/classic/snap/snapcraft.yaml b/tests/spread/core24-suites/plugins/python-hello/classic/snap/snapcraft.yaml similarity index 100% rename from tests/spread/core24/python-hello/classic/snap/snapcraft.yaml rename to tests/spread/core24-suites/plugins/python-hello/classic/snap/snapcraft.yaml diff --git a/tests/spread/core24/python-hello/poetry/snap/snapcraft.yaml b/tests/spread/core24-suites/plugins/python-hello/poetry/snap/snapcraft.yaml similarity index 100% rename from tests/spread/core24/python-hello/poetry/snap/snapcraft.yaml rename to tests/spread/core24-suites/plugins/python-hello/poetry/snap/snapcraft.yaml diff --git a/tests/spread/core24-suites/plugins/python-hello/poetry/src/pyproject.toml b/tests/spread/core24-suites/plugins/python-hello/poetry/src/pyproject.toml new file mode 100644 index 0000000000..eef363c29b --- /dev/null +++ b/tests/spread/core24-suites/plugins/python-hello/poetry/src/pyproject.toml @@ -0,0 +1,18 @@ +[tool.poetry] +name = "hello" +version = "0.1.0" +description = "" +authors = ["Your Name "] + +[tool.poetry.dependencies] +python = "^3.10" +black = "^24.8.0" + +[tool.poetry.dev-dependencies] + +[build-system] +requires = ["poetry-core>=1.0.0"] +build-backend = "poetry.core.masonry.api" + +[tool.poetry.scripts] +hello = "hello:main" diff --git a/tests/spread/core24/python-hello/src/hello/__init__.py b/tests/spread/core24-suites/plugins/python-hello/src/hello/__init__.py similarity index 100% rename from tests/spread/core24/python-hello/src/hello/__init__.py rename to tests/spread/core24-suites/plugins/python-hello/src/hello/__init__.py diff --git a/tests/spread/core24-suites/plugins/python-hello/src/setup.py b/tests/spread/core24-suites/plugins/python-hello/src/setup.py new file mode 100644 index 0000000000..b2f5b45efa --- /dev/null +++ b/tests/spread/core24-suites/plugins/python-hello/src/setup.py @@ -0,0 +1,10 @@ +#!/usr/bin/env python3 + +from distutils.core import setup + +setup( + name="hello", + version="0.1", + entry_points={"console_scripts": ["hello=hello:main"]}, + packages=["hello"], +) diff --git a/tests/spread/core24/python-hello/strict/snap/snapcraft.yaml b/tests/spread/core24-suites/plugins/python-hello/strict/snap/snapcraft.yaml similarity index 100% rename from tests/spread/core24/python-hello/strict/snap/snapcraft.yaml rename to tests/spread/core24-suites/plugins/python-hello/strict/snap/snapcraft.yaml diff --git a/tests/spread/core24/python-hello/task.yaml b/tests/spread/core24-suites/plugins/python-hello/task.yaml similarity index 100% rename from tests/spread/core24/python-hello/task.yaml rename to tests/spread/core24-suites/plugins/python-hello/task.yaml diff --git a/tests/spread/core24/python-hello/uv/snap/snapcraft.yaml b/tests/spread/core24-suites/plugins/python-hello/uv/snap/snapcraft.yaml similarity index 100% rename from tests/spread/core24/python-hello/uv/snap/snapcraft.yaml rename to tests/spread/core24-suites/plugins/python-hello/uv/snap/snapcraft.yaml diff --git a/tests/spread/core24/python-hello/uv/src/hello/__init__.py b/tests/spread/core24-suites/plugins/python-hello/uv/src/hello/__init__.py similarity index 100% rename from tests/spread/core24/python-hello/uv/src/hello/__init__.py rename to tests/spread/core24-suites/plugins/python-hello/uv/src/hello/__init__.py diff --git a/tests/spread/core24/python-hello/uv/src/pyproject.toml b/tests/spread/core24-suites/plugins/python-hello/uv/src/pyproject.toml similarity index 100% rename from tests/spread/core24/python-hello/uv/src/pyproject.toml rename to tests/spread/core24-suites/plugins/python-hello/uv/src/pyproject.toml diff --git a/tests/spread/core24/python-hello/uv/src/uv.lock b/tests/spread/core24-suites/plugins/python-hello/uv/src/uv.lock similarity index 100% rename from tests/spread/core24/python-hello/uv/src/uv.lock rename to tests/spread/core24-suites/plugins/python-hello/uv/src/uv.lock diff --git a/tests/spread/core24-suites/plugins/python-symlinks/bare-not-provisioned/snapcraft.yaml b/tests/spread/core24-suites/plugins/python-symlinks/bare-not-provisioned/snapcraft.yaml new file mode 100644 index 0000000000..d35c3b8087 --- /dev/null +++ b/tests/spread/core24-suites/plugins/python-symlinks/bare-not-provisioned/snapcraft.yaml @@ -0,0 +1,21 @@ +name: bare-not-provisioned +version: "1.0" +summary: Bare base without staged python +description: | + If we use base bare staging python is mandatory. If the + interpreter is not staged, we must fail. + +grade: devel +base: bare +build-base: core24 +confinement: strict + +apps: + hello: + command: bin/hello + +parts: + python-sample: + plugin: python + source: src + python-packages: [black] diff --git a/tests/spread/core24-suites/plugins/python-symlinks/bare-not-provisioned/src b/tests/spread/core24-suites/plugins/python-symlinks/bare-not-provisioned/src new file mode 120000 index 0000000000..5cd551cf26 --- /dev/null +++ b/tests/spread/core24-suites/plugins/python-symlinks/bare-not-provisioned/src @@ -0,0 +1 @@ +../src \ No newline at end of file diff --git a/tests/spread/core24-suites/plugins/python-symlinks/bare-provisioned/expected-symlink b/tests/spread/core24-suites/plugins/python-symlinks/bare-provisioned/expected-symlink new file mode 100644 index 0000000000..f89b49523d --- /dev/null +++ b/tests/spread/core24-suites/plugins/python-symlinks/bare-provisioned/expected-symlink @@ -0,0 +1 @@ +../usr/bin/python3.12 diff --git a/tests/spread/core24-suites/plugins/python-symlinks/bare-provisioned/snapcraft.yaml b/tests/spread/core24-suites/plugins/python-symlinks/bare-provisioned/snapcraft.yaml new file mode 100644 index 0000000000..e39953d510 --- /dev/null +++ b/tests/spread/core24-suites/plugins/python-symlinks/bare-provisioned/snapcraft.yaml @@ -0,0 +1,26 @@ +name: bare-provisioned +version: "1.0" +summary: Bare base with staged python +description: | + If we use base bare staging python is mandatory, and the venv + symlink must point to the staged interpreter. The expected + symlink is python3 -> ../usr/bin/. + +grade: devel +base: bare +build-base: core24 +confinement: strict + +apps: + hello: + command: bin/hello + +parts: + python-sample: + plugin: python + source: src + python-packages: [black] + stage-packages: + - python3-minimal + - python3.12-minimal + - python3-venv diff --git a/tests/spread/core24-suites/plugins/python-symlinks/bare-provisioned/src b/tests/spread/core24-suites/plugins/python-symlinks/bare-provisioned/src new file mode 120000 index 0000000000..5cd551cf26 --- /dev/null +++ b/tests/spread/core24-suites/plugins/python-symlinks/bare-provisioned/src @@ -0,0 +1 @@ +../src \ No newline at end of file diff --git a/tests/spread/core24-suites/plugins/python-symlinks/classic-not-provisioned/snapcraft.yaml b/tests/spread/core24-suites/plugins/python-symlinks/classic-not-provisioned/snapcraft.yaml new file mode 100644 index 0000000000..de97344e0d --- /dev/null +++ b/tests/spread/core24-suites/plugins/python-symlinks/classic-not-provisioned/snapcraft.yaml @@ -0,0 +1,22 @@ +name: classic-not-provisioned +version: "1.0" +summary: Classic confinement, python not staged +description: | + Classic confinement requires the python interpreter to be + provisioned by the user because we can't rely on the host to + provide a compatible version. If a staged interpreter is not + found, we must fail. + +grade: devel +base: core24 +confinement: classic + +apps: + hello: + command: bin/hello + +parts: + python-sample: + plugin: python + source: src + python-packages: [black] diff --git a/tests/spread/core24-suites/plugins/python-symlinks/classic-not-provisioned/src b/tests/spread/core24-suites/plugins/python-symlinks/classic-not-provisioned/src new file mode 120000 index 0000000000..5cd551cf26 --- /dev/null +++ b/tests/spread/core24-suites/plugins/python-symlinks/classic-not-provisioned/src @@ -0,0 +1 @@ +../src \ No newline at end of file diff --git a/tests/spread/core24-suites/plugins/python-symlinks/classic-provisioned/expected-symlink b/tests/spread/core24-suites/plugins/python-symlinks/classic-provisioned/expected-symlink new file mode 100644 index 0000000000..f89b49523d --- /dev/null +++ b/tests/spread/core24-suites/plugins/python-symlinks/classic-provisioned/expected-symlink @@ -0,0 +1 @@ +../usr/bin/python3.12 diff --git a/tests/spread/core24-suites/plugins/python-symlinks/classic-provisioned/snapcraft.yaml b/tests/spread/core24-suites/plugins/python-symlinks/classic-provisioned/snapcraft.yaml new file mode 100644 index 0000000000..e2d4350492 --- /dev/null +++ b/tests/spread/core24-suites/plugins/python-symlinks/classic-provisioned/snapcraft.yaml @@ -0,0 +1,23 @@ +name: classic-provisioned +version: "1.0" +summary: Classic confinement with staged python +description: | + Classic confinement requires the python interpreter to be + provisioned by the user because we can't rely on the host to + provide a compatible version. The expected venv symlink is + python3 -> ../usr/bin/. + +grade: devel +base: core24 +confinement: classic + +apps: + hello: + command: bin/hello + +parts: + python-sample: + plugin: python + source: src + python-packages: [black] + stage-packages: [python3-minimal, python3.12-minimal] diff --git a/tests/spread/core24-suites/plugins/python-symlinks/classic-provisioned/src b/tests/spread/core24-suites/plugins/python-symlinks/classic-provisioned/src new file mode 120000 index 0000000000..5cd551cf26 --- /dev/null +++ b/tests/spread/core24-suites/plugins/python-symlinks/classic-provisioned/src @@ -0,0 +1 @@ +../src \ No newline at end of file diff --git a/tests/spread/core24-suites/plugins/python-symlinks/devmode-not-provisioned/expected-symlink b/tests/spread/core24-suites/plugins/python-symlinks/devmode-not-provisioned/expected-symlink new file mode 100644 index 0000000000..a01d81c222 --- /dev/null +++ b/tests/spread/core24-suites/plugins/python-symlinks/devmode-not-provisioned/expected-symlink @@ -0,0 +1 @@ +/usr/bin/python3.12 diff --git a/tests/spread/core24-suites/plugins/python-symlinks/devmode-not-provisioned/snapcraft.yaml b/tests/spread/core24-suites/plugins/python-symlinks/devmode-not-provisioned/snapcraft.yaml new file mode 100644 index 0000000000..f5b87b4668 --- /dev/null +++ b/tests/spread/core24-suites/plugins/python-symlinks/devmode-not-provisioned/snapcraft.yaml @@ -0,0 +1,22 @@ +name: devmode-not-provisioned +version: "1.0" +summary: Devmode confinement without staged python +description: | + Devmode works like strict confinement and if we don't have a staged + python interpreter the venv symlink must point to the interpreter + provided by the base snap (which will appear as the root filesystem). + The expected link for core24 is python3 -> /usr/bin/python3.12. + +grade: devel +base: core24 +confinement: devmode + +apps: + hello: + command: bin/hello + +parts: + python-sample: + plugin: python + source: src + python-packages: [black] diff --git a/tests/spread/core24-suites/plugins/python-symlinks/devmode-not-provisioned/src b/tests/spread/core24-suites/plugins/python-symlinks/devmode-not-provisioned/src new file mode 120000 index 0000000000..5cd551cf26 --- /dev/null +++ b/tests/spread/core24-suites/plugins/python-symlinks/devmode-not-provisioned/src @@ -0,0 +1 @@ +../src \ No newline at end of file diff --git a/tests/spread/core24-suites/plugins/python-symlinks/devmode-provisioned/expected-symlink b/tests/spread/core24-suites/plugins/python-symlinks/devmode-provisioned/expected-symlink new file mode 100644 index 0000000000..f89b49523d --- /dev/null +++ b/tests/spread/core24-suites/plugins/python-symlinks/devmode-provisioned/expected-symlink @@ -0,0 +1 @@ +../usr/bin/python3.12 diff --git a/tests/spread/core24-suites/plugins/python-symlinks/devmode-provisioned/snapcraft.yaml b/tests/spread/core24-suites/plugins/python-symlinks/devmode-provisioned/snapcraft.yaml new file mode 100644 index 0000000000..88652dff30 --- /dev/null +++ b/tests/spread/core24-suites/plugins/python-symlinks/devmode-provisioned/snapcraft.yaml @@ -0,0 +1,22 @@ +name: devmode-provisioned +version: "1.0" +summary: Devmode confinement with staged python +description: | + Devmode works like strict confinement so if python is staged, the + venv symlink must point to the staged interpreter. The expected + symlink is python3 -> ../usr/bin/. + +grade: devel +base: core24 +confinement: devmode + +apps: + hello: + command: bin/hello + +parts: + python-sample: + plugin: python + source: src + python-packages: [black] + stage-packages: [python3-minimal, python3.12-minimal] diff --git a/tests/spread/core24-suites/plugins/python-symlinks/devmode-provisioned/src b/tests/spread/core24-suites/plugins/python-symlinks/devmode-provisioned/src new file mode 120000 index 0000000000..5cd551cf26 --- /dev/null +++ b/tests/spread/core24-suites/plugins/python-symlinks/devmode-provisioned/src @@ -0,0 +1 @@ +../src \ No newline at end of file diff --git a/tests/spread/core24-suites/plugins/python-symlinks/provisioned-from-another-part/expected-symlink b/tests/spread/core24-suites/plugins/python-symlinks/provisioned-from-another-part/expected-symlink new file mode 100644 index 0000000000..f89b49523d --- /dev/null +++ b/tests/spread/core24-suites/plugins/python-symlinks/provisioned-from-another-part/expected-symlink @@ -0,0 +1 @@ +../usr/bin/python3.12 diff --git a/tests/spread/core24-suites/plugins/python-symlinks/provisioned-from-another-part/snapcraft.yaml b/tests/spread/core24-suites/plugins/python-symlinks/provisioned-from-another-part/snapcraft.yaml new file mode 100644 index 0000000000..856229f30d --- /dev/null +++ b/tests/spread/core24-suites/plugins/python-symlinks/provisioned-from-another-part/snapcraft.yaml @@ -0,0 +1,29 @@ +name: provisioned-from-another-part +version: "1.0" +summary: Python staged from a different part +description: | + It doesn't matter if a python interpreter is staged from + the part using the python plugin or from a different part, + the venv symlink should be the same (as long as the part + using the python plugin is built after the part that + stages the python interpreter). The expected symlink is + python3 -> ../usr/bin/. + +grade: devel +base: core24 +confinement: strict + +apps: + hello: + command: bin/hello + +parts: + python-sample: + after: [other-part] + plugin: python + source: src + python-packages: [black] + + other-part: + plugin: nil + stage-packages: [python3-minimal, python3.12-minimal] diff --git a/tests/spread/core24-suites/plugins/python-symlinks/provisioned-from-another-part/src b/tests/spread/core24-suites/plugins/python-symlinks/provisioned-from-another-part/src new file mode 120000 index 0000000000..5cd551cf26 --- /dev/null +++ b/tests/spread/core24-suites/plugins/python-symlinks/provisioned-from-another-part/src @@ -0,0 +1 @@ +../src \ No newline at end of file diff --git a/tests/spread/core24-suites/plugins/python-symlinks/src/hello/__init__.py b/tests/spread/core24-suites/plugins/python-symlinks/src/hello/__init__.py new file mode 100644 index 0000000000..e3095b2229 --- /dev/null +++ b/tests/spread/core24-suites/plugins/python-symlinks/src/hello/__init__.py @@ -0,0 +1,2 @@ +def main(): + print("hello world") diff --git a/tests/spread/core24-suites/plugins/python-symlinks/src/setup.py b/tests/spread/core24-suites/plugins/python-symlinks/src/setup.py new file mode 100644 index 0000000000..b2f5b45efa --- /dev/null +++ b/tests/spread/core24-suites/plugins/python-symlinks/src/setup.py @@ -0,0 +1,10 @@ +#!/usr/bin/env python3 + +from distutils.core import setup + +setup( + name="hello", + version="0.1", + entry_points={"console_scripts": ["hello=hello:main"]}, + packages=["hello"], +) diff --git a/tests/spread/core24-suites/plugins/python-symlinks/strict-gnome-extension/expected-symlink b/tests/spread/core24-suites/plugins/python-symlinks/strict-gnome-extension/expected-symlink new file mode 100644 index 0000000000..a01d81c222 --- /dev/null +++ b/tests/spread/core24-suites/plugins/python-symlinks/strict-gnome-extension/expected-symlink @@ -0,0 +1 @@ +/usr/bin/python3.12 diff --git a/tests/spread/core24-suites/plugins/python-symlinks/strict-gnome-extension/snapcraft.yaml b/tests/spread/core24-suites/plugins/python-symlinks/strict-gnome-extension/snapcraft.yaml new file mode 100644 index 0000000000..4a057d8d02 --- /dev/null +++ b/tests/spread/core24-suites/plugins/python-symlinks/strict-gnome-extension/snapcraft.yaml @@ -0,0 +1,22 @@ +name: strict-gnome-extension +version: "1.0" +summary: Strict with gnome extension +description: | + Using the gnome extension must not affect the python + interpreter symlink. With strict confinement, the expected + symlink for base core24 is python3 -> /usr/bin/python3.12. + +grade: devel +base: core24 +confinement: strict + +apps: + hello: + command: bin/hello + extensions: [gnome] + +parts: + python-sample: + plugin: python + source: src + python-packages: [black] diff --git a/tests/spread/core24-suites/plugins/python-symlinks/strict-gnome-extension/src b/tests/spread/core24-suites/plugins/python-symlinks/strict-gnome-extension/src new file mode 120000 index 0000000000..5cd551cf26 --- /dev/null +++ b/tests/spread/core24-suites/plugins/python-symlinks/strict-gnome-extension/src @@ -0,0 +1 @@ +../src \ No newline at end of file diff --git a/tests/spread/core24-suites/plugins/python-symlinks/strict-not-provisioned/expected-symlink b/tests/spread/core24-suites/plugins/python-symlinks/strict-not-provisioned/expected-symlink new file mode 100644 index 0000000000..a01d81c222 --- /dev/null +++ b/tests/spread/core24-suites/plugins/python-symlinks/strict-not-provisioned/expected-symlink @@ -0,0 +1 @@ +/usr/bin/python3.12 diff --git a/tests/spread/core24-suites/plugins/python-symlinks/strict-not-provisioned/snapcraft.yaml b/tests/spread/core24-suites/plugins/python-symlinks/strict-not-provisioned/snapcraft.yaml new file mode 100644 index 0000000000..1d7f5281c8 --- /dev/null +++ b/tests/spread/core24-suites/plugins/python-symlinks/strict-not-provisioned/snapcraft.yaml @@ -0,0 +1,22 @@ +name: strict-not-provisioned +version: "1.0" +summary: Strict confinement without staged python +description: | + When we have a strict snap with no staged python the venv + symlink must point to the interpreter provided by the base + snap (which will appear as the root filesystem). The expected + link for core24 is python3 -> /usr/bin/python3.12. + +grade: devel +base: core24 +confinement: strict + +apps: + hello: + command: bin/hello + +parts: + python-sample: + plugin: python + source: src + python-packages: [black] diff --git a/tests/spread/core24-suites/plugins/python-symlinks/strict-not-provisioned/src b/tests/spread/core24-suites/plugins/python-symlinks/strict-not-provisioned/src new file mode 120000 index 0000000000..5cd551cf26 --- /dev/null +++ b/tests/spread/core24-suites/plugins/python-symlinks/strict-not-provisioned/src @@ -0,0 +1 @@ +../src \ No newline at end of file diff --git a/tests/spread/core24-suites/plugins/python-symlinks/strict-provisioned/expected-symlink b/tests/spread/core24-suites/plugins/python-symlinks/strict-provisioned/expected-symlink new file mode 100644 index 0000000000..f89b49523d --- /dev/null +++ b/tests/spread/core24-suites/plugins/python-symlinks/strict-provisioned/expected-symlink @@ -0,0 +1 @@ +../usr/bin/python3.12 diff --git a/tests/spread/core24-suites/plugins/python-symlinks/strict-provisioned/snapcraft.yaml b/tests/spread/core24-suites/plugins/python-symlinks/strict-provisioned/snapcraft.yaml new file mode 100644 index 0000000000..1ae0cf82fc --- /dev/null +++ b/tests/spread/core24-suites/plugins/python-symlinks/strict-provisioned/snapcraft.yaml @@ -0,0 +1,22 @@ +name: strict-provisioned +version: "1.0" +summary: Strict confinement with staged python +description: | + When confinement is strict and python is staged, the venv + symlink must point to the staged interpreter. The expected + symlink is python3 -> ../usr/bin/. + +grade: devel +base: core24 +confinement: strict + +apps: + hello: + command: bin/hello + +parts: + python-sample: + plugin: python + source: src + python-packages: [black] + stage-packages: [python3-minimal, python3.12-minimal] diff --git a/tests/spread/core24-suites/plugins/python-symlinks/strict-provisioned/src b/tests/spread/core24-suites/plugins/python-symlinks/strict-provisioned/src new file mode 120000 index 0000000000..5cd551cf26 --- /dev/null +++ b/tests/spread/core24-suites/plugins/python-symlinks/strict-provisioned/src @@ -0,0 +1 @@ +../src \ No newline at end of file diff --git a/tests/spread/core24-suites/plugins/python-symlinks/task.yaml b/tests/spread/core24-suites/plugins/python-symlinks/task.yaml new file mode 100644 index 0000000000..93f44313de --- /dev/null +++ b/tests/spread/core24-suites/plugins/python-symlinks/task.yaml @@ -0,0 +1,43 @@ +summary: >- + Verify python symlinks with different base and confinement + configurations + +environment: + # base core24, strict confinement: use provisioned if available + SNAP/strict_not_provisioned: strict-not-provisioned + SNAP/strict_provisioned: strict-provisioned + + # base core24, classic confinement: requires provisioning + SNAP/classic_not_provisioned: classic-not-provisioned + SNAP/classic_provisioned: classic-provisioned + + # base core24, devmode: same as strict + SNAP/devmode_not_provisioned: devmode-not-provisioned + SNAP/devmode_provisioned: devmode-provisioned + + # base bare: requires provisioning + SNAP/bare_not_provisioned: bare-not-provisioned + SNAP/bare_provisioned: bare-provisioned + + # provisioned from a different part + SNAP/provisioned_from_another_part: provisioned-from-another-part + + # using the gnome extension + SNAP/strict_gnome_extension: strict-gnome-extension + +restore: | + cd "${SNAP}" + snapcraft clean + rm -f ./*.snap + +execute: | + cd "${SNAP}" + + if [ -f expected-symlink ]; then + snapcraft prime + ls -l prime/bin + [ -x prime/bin/hello ] + [ "$(readlink prime/bin/python3)" == "$(cat expected-symlink)" ] + else + snapcraft prime 2>&1 | MATCH "No suitable Python interpreter found, giving up." + fi diff --git a/tests/spread/core24/npm-reentrant/task.yaml b/tests/spread/core24/npm-reentrant/task.yaml deleted file mode 100644 index 9ad7c48d5d..0000000000 --- a/tests/spread/core24/npm-reentrant/task.yaml +++ /dev/null @@ -1,11 +0,0 @@ -summary: Pull, then Build, a Node snap - -execute: | - snapcraft pull - snapcraft build - snapcraft pack - test -f npm-reentrant*.snap - -restore: | - snapcraft clean - rm -f ./*.snap