Skip to content

GPLv3 -> Apache 2.0#50

Merged
fmrico merged 1 commit intorollingfrom
license
Feb 19, 2026
Merged

GPLv3 -> Apache 2.0#50
fmrico merged 1 commit intorollingfrom
license

Conversation

@fmrico
Copy link
Contributor

@fmrico fmrico commented Feb 18, 2026

Hi,

After a discussion among all contributors and maintainers, we have decided change the license from GPLv3 to Apache 2.0.

I hope you find it a good idea ;)

Signed-off-by: Francisco Martín Rico <fmrico@gmail.com>
Copilot AI review requested due to automatic review settings February 18, 2026 08:51
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR switches the repository’s licensing from GPL-3.0-only to Apache-2.0 across multiple ROS 2 packages, updating package metadata, READMEs, and per-file license headers to reflect the new license.

Changes:

  • Replace GPLv3 boilerplate headers with Apache-2.0 boilerplate across source, header, and test files.
  • Update package.xml <license> fields and per-package README.md license sections to Apache-2.0.
  • Replace the repository LICENSE contents with Apache License 2.0 text (but currently duplicated in the file).

Reviewed changes

Copilot reviewed 112 out of 112 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
planners/easynav_simple_planner/src/easynav_simple_planner/SimplePlanner.cpp Apache header + path stamping behavior change (uses latest input stamp).
planners/easynav_simple_planner/package.xml Update license tag to Apache-2.0.
planners/easynav_simple_planner/include/easynav_simple_planner/SimplePlanner.hpp Replace license header with Apache-2.0 boilerplate.
planners/easynav_simple_planner/README.md Update declared license to Apache-2.0.
planners/easynav_navmap_planner/src/easynav_navmap_planner/AStarPlanner.cpp Replace license header with Apache-2.0 boilerplate.
planners/easynav_navmap_planner/package.xml Update license tag to Apache-2.0.
planners/easynav_navmap_planner/include/easynav_navmap_planner/AStarPlanner.hpp Replace license header with Apache-2.0 boilerplate.
planners/easynav_navmap_planner/README.md Update declared license to Apache-2.0.
planners/easynav_costmap_planner/src/easynav_costmap_planner/CostmapPlanner.cpp Replace license header with Apache-2.0 boilerplate.
planners/easynav_costmap_planner/package.xml Update license tag to Apache-2.0.
planners/easynav_costmap_planner/include/easynav_costmap_planner/CostmapPlanner.hpp Replace license header with Apache-2.0 boilerplate.
planners/easynav_costmap_planner/README.md Update declared license to Apache-2.0.
maps_managers/easynav_simple_maps_manager/tests/simple_mapsmanager_tests.cpp Replace license header with Apache-2.0 boilerplate.
maps_managers/easynav_simple_maps_manager/src/easynav_simple_maps_manager/SimpleMapsManager.cpp Apache header + dynamic grid stamping behavior change (uses fused stamp).
maps_managers/easynav_simple_maps_manager/package.xml Update license tag to Apache-2.0.
maps_managers/easynav_simple_maps_manager/include/easynav_simple_maps_manager/SimpleMapsManager.hpp Replace license header with Apache-2.0 boilerplate.
maps_managers/easynav_simple_maps_manager/README.md Update declared license to Apache-2.0.
maps_managers/easynav_routes_maps_manager/tests/routes_mapsmanager_tests.cpp Replace license header with Apache-2.0 boilerplate.
maps_managers/easynav_routes_maps_manager/tests/routes_costmap_filter_tests.cpp Replace license header with Apache-2.0 boilerplate.
maps_managers/easynav_routes_maps_manager/src/easynav_routes_maps_manager/filters/RoutesCostmapFilter.cpp Replace license header with Apache-2.0 boilerplate.
maps_managers/easynav_routes_maps_manager/src/easynav_routes_maps_manager/RoutesMapsManager.cpp Replace license header with Apache-2.0 boilerplate.
maps_managers/easynav_routes_maps_manager/package.xml Update license tag to Apache-2.0.
maps_managers/easynav_routes_maps_manager/include/easynav_routes_maps_manager/filters/RoutesCostmapFilter.hpp Replace license header with Apache-2.0 boilerplate.
maps_managers/easynav_routes_maps_manager/include/easynav_routes_maps_manager/RoutesMapsManager.hpp Replace license header with Apache-2.0 boilerplate.
maps_managers/easynav_routes_maps_manager/include/easynav_routes_maps_manager/RoutesFilter.hpp Replace license header with Apache-2.0 boilerplate.
maps_managers/easynav_routes_maps_manager/README.md Update declared license to Apache-2.0.
maps_managers/easynav_octomap_maps_manager/src/easynav_octomap_maps_manager/filters/OctomapFilter.cpp Replace license header with Apache-2.0 boilerplate.
maps_managers/easynav_octomap_maps_manager/src/easynav_octomap_maps_manager/filters/ObstacleFilter.cpp Replace license header with Apache-2.0 boilerplate.
maps_managers/easynav_octomap_maps_manager/src/easynav_octomap_maps_manager/OctomapMapsManager.cpp Replace license header with Apache-2.0 boilerplate.
maps_managers/easynav_octomap_maps_manager/package.xml Update license tag to Apache-2.0.
maps_managers/easynav_octomap_maps_manager/include/easynav_octomap_maps_manager/filters/OctomapFilter.hpp Replace license header with Apache-2.0 boilerplate.
maps_managers/easynav_octomap_maps_manager/include/easynav_octomap_maps_manager/filters/ObstacleFilter.hpp Replace license header with Apache-2.0 boilerplate.
maps_managers/easynav_octomap_maps_manager/include/easynav_octomap_maps_manager/filters/InflationFilter.hpp Replace license header with Apache-2.0 boilerplate.
maps_managers/easynav_octomap_maps_manager/include/easynav_octomap_maps_manager/OctomapMapsManager.hpp Replace license header with Apache-2.0 boilerplate.
maps_managers/easynav_octomap_maps_manager/README.md Update declared license to Apache-2.0.
maps_managers/easynav_navmap_maps_manager/tests/navmap_mapsmanager_tests.cpp Replace license header with Apache-2.0 boilerplate.
maps_managers/easynav_navmap_maps_manager/src/easynav_navmap_maps_manager/filters/ObstacleFilter.cpp Replace license header with Apache-2.0 boilerplate.
maps_managers/easynav_navmap_maps_manager/src/easynav_navmap_maps_manager/filters/NavMapFilter.cpp Replace license header with Apache-2.0 boilerplate.
maps_managers/easynav_navmap_maps_manager/src/easynav_navmap_maps_manager/NavMapMapsManager.cpp Replace license header with Apache-2.0 boilerplate.
maps_managers/easynav_navmap_maps_manager/package.xml Update license tag to Apache-2.0.
maps_managers/easynav_navmap_maps_manager/include/easynav_navmap_maps_manager/filters/ObstacleFilter.hpp Replace license header with Apache-2.0 boilerplate.
maps_managers/easynav_navmap_maps_manager/include/easynav_navmap_maps_manager/filters/NavMapFilter.hpp Replace license header with Apache-2.0 boilerplate.
maps_managers/easynav_navmap_maps_manager/include/easynav_navmap_maps_manager/filters/InflationFilter.hpp Replace license header with Apache-2.0 boilerplate.
maps_managers/easynav_navmap_maps_manager/include/easynav_navmap_maps_manager/NavMapMapsManager.hpp Replace license header with Apache-2.0 boilerplate.
maps_managers/easynav_navmap_maps_manager/README.md Update declared license to Apache-2.0.
maps_managers/easynav_costmap_maps_manager/tests/costmap_mapsmanager_tests.cpp Replace license header with Apache-2.0 boilerplate.
maps_managers/easynav_costmap_maps_manager/src/easynav_costmap_maps_manager/filters/ObstacleFilter.cpp Replace license header with Apache-2.0 boilerplate.
maps_managers/easynav_costmap_maps_manager/src/easynav_costmap_maps_manager/filters/CostmapFilter.cpp Replace license header with Apache-2.0 boilerplate.
maps_managers/easynav_costmap_maps_manager/src/easynav_costmap_maps_manager/CostmapMapsManager.cpp Replace license header with Apache-2.0 boilerplate.
maps_managers/easynav_costmap_maps_manager/package.xml Update license tag to Apache-2.0.
maps_managers/easynav_costmap_maps_manager/include/easynav_costmap_maps_manager/filters/ObstacleFilter.hpp Replace license header with Apache-2.0 boilerplate.
maps_managers/easynav_costmap_maps_manager/include/easynav_costmap_maps_manager/filters/CostmapFilter.hpp Replace license header with Apache-2.0 boilerplate.
maps_managers/easynav_costmap_maps_manager/include/easynav_costmap_maps_manager/CostmapMapsManager.hpp Replace license header with Apache-2.0 boilerplate.
maps_managers/easynav_costmap_maps_manager/README.md Update declared license to Apache-2.0.
maps_managers/easynav_bonxai_maps_manager/src/easynav_bonxai_maps_manager/BonxaiMapsManager.cpp Replace license header with Apache-2.0 boilerplate.
maps_managers/easynav_bonxai_maps_manager/package.xml Update license tag to Apache-2.0.
maps_managers/easynav_bonxai_maps_manager/include/easynav_bonxai_maps_manager/BonxaiMapsManager.hpp Replace license header with Apache-2.0 boilerplate.
maps_managers/easynav_bonxai_maps_manager/README.md Update declared license to Apache-2.0.
localizers/easynav_simple_localizer/tests/simple_localizer_tests.cpp Replace license header with Apache-2.0 boilerplate.
localizers/easynav_simple_localizer/src/easynav_simple_localizer/AMCLLocalizer.cpp Apache header + fuse timestamp propagation change (last_input_time_ usage).
localizers/easynav_simple_localizer/package.xml Update license tag to Apache-2.0.
localizers/easynav_simple_localizer/include/easynav_simple_localizer/AMCLLocalizer.hpp Replace license header with Apache-2.0 boilerplate.
localizers/easynav_simple_localizer/README.md Update declared license to Apache-2.0.
localizers/easynav_navmap_localizer/tests/costmap_localizer_tests.cpp Replace license header with Apache-2.0 boilerplate.
localizers/easynav_navmap_localizer/src/easynav_navmap_localizer/AMCLLocalizer.cpp Replace license header with Apache-2.0 boilerplate.
localizers/easynav_navmap_localizer/package.xml Update license tag to Apache-2.0.
localizers/easynav_navmap_localizer/include/easynav_navmap_localizer/PerceptionModel.hpp Replace license header with Apache-2.0 boilerplate.
localizers/easynav_navmap_localizer/include/easynav_navmap_localizer/AMCLLocalizer.hpp Replace license header with Apache-2.0 boilerplate.
localizers/easynav_navmap_localizer/README.md Update declared license to Apache-2.0.
localizers/easynav_gps_localizer/src/easynav_gps_localizer/GpsLocalizer.cpp Replace license header with Apache-2.0 boilerplate.
localizers/easynav_gps_localizer/package.xml Update license tag to Apache-2.0.
localizers/easynav_gps_localizer/include/easynav_gps_localizer/GpsLocalizer.hpp Replace license header with Apache-2.0 boilerplate.
localizers/easynav_gps_localizer/README.md Update declared license to Apache-2.0.
localizers/easynav_fusion_localizer/package.xml Update license tag to Apache-2.0.
localizers/easynav_fusion_localizer/README.md Update declared license to Apache-2.0.
localizers/easynav_costmap_localizer/tests/costmap_localizer_tests.cpp Replace license header with Apache-2.0 boilerplate.
localizers/easynav_costmap_localizer/src/easynav_costmap_localizer/AMCLLocalizer.cpp Apache header + fuse timestamp propagation change (last_input_time_ usage).
localizers/easynav_costmap_localizer/package.xml Update license tag to Apache-2.0.
localizers/easynav_costmap_localizer/include/easynav_costmap_localizer/AMCLLocalizer.hpp Replace license header with Apache-2.0 boilerplate.
localizers/easynav_costmap_localizer/README.md Update declared license to Apache-2.0.
controllers/easynav_vff_controller/src/easynav_vff_controller/VffController.cpp Replace license header with Apache-2.0 boilerplate.
controllers/easynav_vff_controller/package.xml Update license tag to Apache-2.0.
controllers/easynav_vff_controller/include/easynav_vff_controller/VffController.hpp Replace license header with Apache-2.0 boilerplate.
controllers/easynav_vff_controller/README.md Update declared license to Apache-2.0.
controllers/easynav_simple_controller/tests/simple_controller_tests.cpp Replace license header with Apache-2.0 boilerplate.
controllers/easynav_simple_controller/src/easynav_simple_controller/SimpleController.cpp Apache header + cmd_vel stamping behavior change (uses latest input stamp).
controllers/easynav_simple_controller/package.xml Update license tag to Apache-2.0.
controllers/easynav_simple_controller/include/easynav_simple_controller/SimpleController.hpp Replace license header with Apache-2.0 boilerplate.
controllers/easynav_simple_controller/README.md Update declared license to Apache-2.0.
controllers/easynav_serest_controller/src/easynav_serest_controller/SerestController.cpp Replace license header with Apache-2.0 boilerplate.
controllers/easynav_serest_controller/package.xml Update license tag to Apache-2.0.
controllers/easynav_serest_controller/include/easynav_serest_controller/SerestController.hpp Replace license header with Apache-2.0 boilerplate.
controllers/easynav_serest_controller/README.md Update declared license to Apache-2.0.
controllers/easynav_mppi_controller/src/easynav_mppi_controller/MPPIController.cpp Replace license header with Apache-2.0 boilerplate.
controllers/easynav_mppi_controller/package.xml Update license tag to Apache-2.0.
controllers/easynav_mppi_controller/include/easynav_mppi_controller/MPPIOptimizer.hpp Replace license header with Apache-2.0 boilerplate.
controllers/easynav_mppi_controller/include/easynav_mppi_controller/MPPIController.hpp Replace license header with Apache-2.0 boilerplate.
controllers/easynav_mppi_controller/README.md Update declared license to Apache-2.0.
controllers/easynav_mpc_controller/src/easynav_mpc_controller/MPCOptimizer.cpp Replace license header with Apache-2.0 boilerplate.
controllers/easynav_mpc_controller/src/easynav_mpc_controller/MPCController.cpp Replace license header with Apache-2.0 boilerplate.
controllers/easynav_mpc_controller/package.xml Update license tag to Apache-2.0.
controllers/easynav_mpc_controller/include/easynav_mpc_controller/MPCOptimizer.hpp Replace license header with Apache-2.0 boilerplate.
controllers/easynav_mpc_controller/include/easynav_mpc_controller/MPCController.hpp Replace license header with Apache-2.0 boilerplate.
controllers/easynav_mpc_controller/README.md Update declared license to Apache-2.0.
common/easynav_simple_common/tests/simple_maps_tests.cpp Replace license header with Apache-2.0 boilerplate.
common/easynav_simple_common/src/easynav_simple_common/SimpleMap.cpp Replace license header with Apache-2.0 boilerplate.
common/easynav_simple_common/package.xml Update license tag to Apache-2.0.
common/easynav_simple_common/include/easynav_simple_common/SimpleMap.hpp Replace license header with Apache-2.0 boilerplate.
common/easynav_costmap_common/tests/costmap_2d_tests.cpp Replace license header with Apache-2.0 boilerplate.
common/easynav_costmap_common/package.xml Update license tag to Apache-2.0.
README.md Update repository-level license statement to Apache-2.0.
LICENSE Replace GPLv3 text with Apache-2.0 text (currently duplicated).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +202 to +220
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

1. Definitions.

"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.

"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.

"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
Copy link

Copilot AI Feb 18, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The repository LICENSE file contains the Apache 2.0 license text twice (the document restarts at line ~202 with another "Apache License Version 2.0" heading). This should be reduced to a single canonical Apache 2.0 license text to avoid ambiguity for downstream consumers and license scanners.

Suggested change
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or

Copilot uses AI. Check for mistakes.
Comment on lines +133 to +138
rclcpp::Time latest_stamp = robot_pose.header.stamp;
if (rclcpp::Time(goals.goals.front().header.stamp,
latest_stamp.get_clock_type()) > latest_stamp)
{
latest_stamp = rclcpp::Time(goals.goals.front().header.stamp, latest_stamp.get_clock_type());
}
Copy link

Copilot AI Feb 18, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR description indicates this is only a GPLv3→Apache-2.0 license switch, but this hunk also changes runtime behavior by computing a "latest_stamp" and using it to stamp the published path and poses. Please either update the PR description (and rationale) to cover these behavioral changes or split them into a separate PR to keep the license change reviewable/auditable.

Copilot uses AI. Check for mistakes.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, @Butakus, this PR also includes a chance related to the discussion of time stamps, which I couldn't isolate when I finished all the other chances.

@fmrico fmrico merged commit 8afb57b into rolling Feb 19, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

Comments