diff --git a/pkgs/by-name/ur/urdfdom-headers/package.nix b/pkgs/by-name/ur/urdfdom-headers/package.nix index e1d0ed250c2d..20c19dda0f25 100644 --- a/pkgs/by-name/ur/urdfdom-headers/package.nix +++ b/pkgs/by-name/ur/urdfdom-headers/package.nix @@ -7,22 +7,22 @@ validatePkgConfig, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "urdfdom-headers"; - version = "1.1.1"; + version = "2.0.1"; src = fetchFromGitHub { owner = "ros"; repo = "urdfdom_headers"; - rev = version; - hash = "sha256-FQSnYuTc40MOxyFsMPfoCIonP+4AUQxdq74eoQ9tOoo="; + tag = finalAttrs.version; + hash = "sha256-tBNoG5gH3haZETUlI4Pn1mg14T/sMil9n/iSzjJC+Rg="; }; patches = [ # Fix CMake relative install dir assumptions (https://github.com/ros/urdfdom_headers/pull/66) (fetchpatch { - url = "https://github.com/ros/urdfdom_headers/commit/6e0cea148c3a7123f8367cd48d5709a4490c32f1.patch"; - hash = "sha256-LC2TACGma/k6+WE9fTkzY98SgJYKsVuj5O9v84Q5mQ4="; + url = "https://github.com/ros/urdfdom_headers/commit/fa89f2d4744839827f41579004537c966a097681.patch"; + hash = "sha256-w6PPKCpbR4dGsudVEz+SO9ylXVayLPRAl3VvpMt4DHo="; }) ]; @@ -31,11 +31,11 @@ stdenv.mkDerivation rec { validatePkgConfig ]; - meta = with lib; { + meta = { description = "URDF (U-Robot Description Format) headers provides core data structure headers for URDF"; homepage = "https://github.com/ros/urdfdom_headers"; - license = licenses.bsd3; - maintainers = with maintainers; [ lopsided98 ]; - platforms = platforms.all; + license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ lopsided98 ]; + platforms = lib.platforms.all; }; -} +}) diff --git a/pkgs/by-name/ur/urdfdom/cmake-install-absolute.patch b/pkgs/by-name/ur/urdfdom/cmake-install-absolute.patch new file mode 100644 index 000000000000..f29f8693aa4f --- /dev/null +++ b/pkgs/by-name/ur/urdfdom/cmake-install-absolute.patch @@ -0,0 +1,84 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -19,6 +19,7 @@ option(APPEND_PROJECT_NAME_TO_INCLUDEDIR + + if(APPEND_PROJECT_NAME_TO_INCLUDEDIR) + set(CMAKE_INSTALL_INCLUDEDIR "${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}") ++ set(CMAKE_INSTALL_FULL_INCLUDEDIR "${CMAKE_INSTALL_FULL_INCLUDEDIR}/${PROJECT_NAME}") + endif() + + # set the default build type +@@ -59,9 +60,9 @@ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}" + + enable_testing() + +-set(CMAKE_CONFIG_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}/cmake) +-string(REGEX REPLACE "[^/]+" ".." RELATIVE_PATH_CMAKE_DIR_TO_PREFIX "${CMAKE_CONFIG_INSTALL_DIR}") +-string(REGEX REPLACE "[^/]+" ".." RELATIVE_PATH_LIBDIR_TO_PREFIX "${CMAKE_INSTALL_LIBDIR}") ++set(CMAKE_CONFIG_INSTALL_DIR ${CMAKE_INSTALL_FULL_LIBDIR}/${PROJECT_NAME}/cmake) ++file(RELATIVE_PATH RELATIVE_PATH_CMAKE_DIR_TO_PREFIX "${CMAKE_CONFIG_INSTALL_DIR}" "${CMAKE_INSTALL_PREFIX}") ++file(RELATIVE_PATH RELATIVE_PATH_LIBDIR_TO_PREFIX "${CMAKE_INSTALL_FULL_LIBDIR}" "${CMAKE_INSTALL_PREFIX}") + + add_subdirectory(urdf_parser) + +@@ -69,6 +70,12 @@ set(PKG_NAME ${PROJECT_NAME}) + set(PKG_LIBRARIES urdfdom_sensor urdfdom_model urdfdom_world) + set(PKG_DEPENDS urdfdom_headers) + set(PKG_EXPORTS urdfdom) ++string(REPLACE ++ "${CMAKE_INSTALL_PREFIX}" "\${${PROJECT_NAME}_DIR}/${RELATIVE_PATH_CMAKE_DIR_TO_PREFIX}" ++ CMAKE_CONF_LIBDIR "${CMAKE_INSTALL_FULL_LIBDIR}") ++string(REPLACE ++ "${CMAKE_INSTALL_PREFIX}" "\${${PROJECT_NAME}_DIR}/${RELATIVE_PATH_CMAKE_DIR_TO_PREFIX}" ++ CMAKE_CONF_INCLUDEDIR "${CMAKE_INSTALL_FULL_INCLUDEDIR}") + set(cmake_conf_file "cmake/urdfdom-config") + include(CMakePackageConfigHelpers) + write_basic_package_version_file( +@@ -92,6 +99,8 @@ install(FILES package.xml DESTINATION share/${PROJECT_NAME}) + set(PKG_DESC "Unified Robot Description Format") + set(PKG_DEPENDS "urdfdom_headers") # make the list separated by spaces instead of ; + set(PKG_URDF_LIBS "-lurdfdom_sensor -lurdfdom_model -lurdfdom_world") ++string(REPLACE "${CMAKE_INSTALL_PREFIX}" "\${prefix}" PKG_CONF_LIBDIR "${CMAKE_INSTALL_FULL_LIBDIR}") ++string(REPLACE "${CMAKE_INSTALL_PREFIX}" "\${prefix}" PKG_CONF_INCLUDEDIR "${CMAKE_INSTALL_FULL_INCLUDEDIR}") + set(pkg_conf_file "cmake/pkgconfig/urdfdom.pc") + configure_file("${CMAKE_CURRENT_SOURCE_DIR}/${pkg_conf_file}.in" "${CMAKE_BINARY_DIR}/${pkg_conf_file}" @ONLY) + install(FILES ${CMAKE_BINARY_DIR}/${pkg_conf_file} +diff --git a/cmake/pkgconfig/urdfdom.pc.in b/cmake/pkgconfig/urdfdom.pc.in +index 77d1d9f..01ccb89 100644 +--- a/cmake/pkgconfig/urdfdom.pc.in ++++ b/cmake/pkgconfig/urdfdom.pc.in +@@ -1,8 +1,8 @@ + # This file was generated by CMake for @PROJECT_NAME@ + prefix=${pcfiledir}/../@RELATIVE_PATH_LIBDIR_TO_PREFIX@ + exec_prefix=${prefix} +-libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@ +-includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@ ++libdir=@PKG_CONF_LIBDIR@ ++includedir=@PKG_CONF_INCLUDEDIR@ + + Name: @PKG_NAME@ + Description: @PKG_DESC@ +diff --git a/cmake/urdfdom-config.cmake.in b/cmake/urdfdom-config.cmake.in +index ee84f41..9a77019 100644 +--- a/cmake/urdfdom-config.cmake.in ++++ b/cmake/urdfdom-config.cmake.in +@@ -8,16 +8,16 @@ set(@PKG_NAME@_CONFIG_INCLUDED TRUE) + set(CMAKE_MODULE_PATH_BACKUP_URDFDOM ${CMAKE_MODULE_PATH}) + list(APPEND CMAKE_MODULE_PATH "${@PROJECT_NAME@_DIR}") + +-set(@PKG_NAME@_INCLUDE_DIRS "${@PROJECT_NAME@_DIR}/@RELATIVE_PATH_CMAKE_DIR_TO_PREFIX@/@CMAKE_INSTALL_INCLUDEDIR@") ++set(@PKG_NAME@_INCLUDE_DIRS "@CMAKE_CONF_INCLUDEDIR@") + + foreach(lib @PKG_LIBRARIES@) + set(onelib "${lib}-NOTFOUND") + set(onelibd "${lib}-NOTFOUND") + find_library(onelib ${lib} +- PATHS "${@PROJECT_NAME@_DIR}/@RELATIVE_PATH_CMAKE_DIR_TO_PREFIX@/@CMAKE_INSTALL_LIBDIR@" ++ PATHS "@CMAKE_CONF_LIBDIR@" + NO_DEFAULT_PATH) + find_library(onelibd ${lib}d +- PATHS "${@PROJECT_NAME@_DIR}/@RELATIVE_PATH_CMAKE_DIR_TO_PREFIX@/@CMAKE_INSTALL_LIBDIR@" ++ PATHS "@CMAKE_CONF_LIBDIR@" + NO_DEFAULT_PATH) + if(onelib-NOTFOUND AND onelibd-NOTFOUND) + message(FATAL_ERROR "Library '${lib}' in package @PKG_NAME@ is not installed properly") diff --git a/pkgs/by-name/ur/urdfdom/package.nix b/pkgs/by-name/ur/urdfdom/package.nix index ec65438b542e..b6adda9203ea 100644 --- a/pkgs/by-name/ur/urdfdom/package.nix +++ b/pkgs/by-name/ur/urdfdom/package.nix @@ -2,7 +2,6 @@ lib, stdenv, fetchFromGitHub, - fetchpatch, cmake, pkg-config, validatePkgConfig, @@ -11,23 +10,20 @@ urdfdom-headers, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "urdfdom"; - version = "4.0.0"; + version = "5.0.3"; src = fetchFromGitHub { owner = "ros"; repo = "urdfdom"; - rev = version; - hash = "sha256-t1ff5aRHE7LuQdCXuooWPDUgPWjyYyQmQUB1RJmte1w="; + tag = finalAttrs.version; + hash = "sha256-WZA3rzulPO1Si/kFqGF+8si2kRC8xOhlparoO8CvN0g="; }; patches = [ # Fix CMake relative install dir assumptions (https://github.com/ros/urdfdom/pull/142) - (fetchpatch { - url = "https://github.com/ros/urdfdom/commit/61a7e35cd5abece97259e76aed8504052b2f5b53.patch"; - hash = "sha256-b3bEbbaSUDkwTEHJ8gVPEb+AR/zuWwLqiAW5g1T1dPU="; - }) + ./cmake-install-absolute.patch ]; nativeBuildInputs = [ @@ -41,11 +37,11 @@ stdenv.mkDerivation rec { ]; propagatedBuildInputs = [ urdfdom-headers ]; - meta = with lib; { + meta = { description = "Provides core data structures and a simple XML parser for populating the class data structures from an URDF file"; homepage = "https://github.com/ros/urdfdom"; - license = licenses.bsd3; - maintainers = with maintainers; [ lopsided98 ]; - platforms = platforms.all; + license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ lopsided98 ]; + platforms = lib.platforms.all; }; -} +})