blob: 7e5e79241ec0bd55b0ac187ddf7fe6c542f5f164 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
|
# Maintainer: Jingbei Li <i@jingbei.li>
# Multi-package PKGBUILD for diagnostics - isolated staging per subpackage
pkgbase='ros2-humble-diagnostics'
pkgname=(
## 'ros2-humble-diagnostic-updater' # Already exists in AUR
'ros2-humble-diagnostic-aggregator'
'ros2-humble-diagnostic-common-diagnostics'
'ros2-humble-diagnostic-remote-logging'
'ros2-humble-self-test'
'ros2-humble-diagnostics'
)
pkgver=4.0.6
pkgrel=1
pkgdesc="Diagnostics packages for ROS 2"
arch=('x86_64')
url="https://github.com/ros/diagnostics"
license=('Apache-2.0')
depends=(
'ros2-humble'
)
makedepends=(
'ros2-humble'
'cmake'
'python'
)
source=("https://github.com/ros/diagnostics/archive/refs/tags/${pkgver}.tar.gz")
sha256sums=('0bfde33160893104729188f5781db00cadd182af96ff10febfd5d2de0dd70f1c')
build() {
local _staging="$srcdir/_staging"
rm -rf "$_staging"
mkdir -p "$_staging"
# Build in dependency order
# 1. diagnostic_updater (needs diagnostic_msgs from ros2-humble)
_build_install_isolated diagnostic_updater ""
# 2. diagnostic_common_diagnostics (needs diagnostic_updater)
_build_install_isolated diagnostic_common_diagnostics "$_staging/diagnostic_updater/opt/ros/humble"
# 3. diagnostic_aggregator (needs diagnostic_msgs)
_build_install_isolated diagnostic_aggregator ""
# ️ diagnostic_remote_logging (needs diagnostic_updater implicitly)
_build_install_isolated diagnostic_remote_logging "$_staging/diagnostic_updater/opt/ros/humble"
# 5. self_test (needs diagnostic_updater)
_build_install_isolated self_test "$_staging/diagnostic_updater/opt/ros/humble"
# 6. diagnostics (meta package, no install)
:
}
# Helper: build and install one subdirectory to its own staging location
_build_install_isolated() {
local _subdir="$1"
local _extra_prefix="$2"
msg2 "Building $1 ..."
cd "$srcdir/diagnostics-$pkgver/$_subdir"
source /opt/ros/humble/setup.bash
export CXXFLAGS="${CXXFLAGS} -include cstdint"
if [ -n "$_extra_prefix" ]; then
export CMAKE_PREFIX_PATH="${_extra_prefix}:${CMAKE_PREFIX_PATH}"
fi
cmake -B "build-$_subdir" -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_PREFIX=/opt/ros/humble -Wno-dev
cmake --build "build-$_subdir"
local _pkg_staging="$_staging/$_subdir"
DESTDIR="$_pkg_staging" cmake --install "build-$_subdir"
}
package_ros2-humble-diagnostics() {
pkgdesc="Meta-package for ROS 2 diagnostics suite"
arch=('any')
depends=(
'ros2-humble-diagnostic-updater'
'ros2-humble-diagnostic-aggregator'
'ros2-humble-diagnostic-common-diagnostics'
'ros2-humble-self-test'
)
:
}
package_ros2-humble-diagnostic-aggregator() {
pkgdesc="diagnostic_aggregator aggregates diagnostic messages"
arch=('x86_64')
depends=('ros2-humble')
local _staging_pkg="$srcdir/_staging/diagnostic_aggregator"
mkdir -p "$pkgdir/opt/ros/humble"
cp -r "$_staging_pkg/opt/ros/humble/." "$pkgdir/opt/ros/humble/"
}
package_ros2-humble-diagnostic-common-diagnostics() {
pkgdesc="Predefined diagnostic nodes for monitoring Linux and ROS system"
arch=('any')
depends=(
'ros2-humble'
'ros2-humble-diagnostic-updater'
'lm-sensors'
'python-psutil'
'python-ntplib'
)
local _staging_pkg="$srcdir/_staging/diagnostic_common_diagnostics"
mkdir -p "$pkgdir/opt/ros/humble"
cp -r "$_staging_pkg/opt/ros/humble/." "$pkgdir/opt/ros/humble/"
}
package_ros2-humble-diagnostic-remote-logging() {
pkgdesc="Remote logging for diagnostics (InfluxDB)"
arch=('x86_64')
depends=('ros2-humble' 'curl')
local _staging_pkg="$srcdir/_staging/diagnostic_remote_logging"
mkdir -p "$pkgdir/opt/ros/humble"
cp -r "$_staging_pkg/opt/ros/humble/." "$pkgdir/opt/ros/humble/"
}
package_ros2-humble-self-test() {
pkgdesc="Self test tools for diagnostics"
arch=('x86_64')
depends=('ros2-humble' 'ros2-humble-diagnostic-updater')
local _staging_pkg="$srcdir/_staging/self_test"
mkdir -p "$pkgdir/opt/ros/humble"
cp -r "$_staging_pkg/opt/ros/humble/." "$pkgdir/opt/ros/humble/"
}
package_ros2-humble-diagnostic-updater() {
pkgdesc="diagnostic_updater contains tools for easily updating diagnostics"
arch=('x86_64')
depends=('ros2-humble')
local _staging_pkg="$srcdir/_staging/diagnostic_updater"
mkdir -p "$pkgdir/opt/ros/humble"
cp -r "$_staging_pkg/opt/ros/humble/." "$pkgdir/opt/ros/humble/"
}
|