blob: b5653843e36856766fed173eb903380a97ecfd3f (
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
|
# Maintainer: Oystein Sture <oysstu at gmail.com>
# Contributor: Mohammad Mostafa Farzan <m2_farzan@yahoo.com>
# Contributor: mjbogusz <mjbogusz+github@gmail.com>
# Contributor: yuanyuyuan <az6980522@gmail.com>
# Contributor: Rémy B. (github.com/KirrimK)
# Contributor: Renato Caldas (github.com/rmsc)
# Contributor: goekce (github.com/goekce)
# Contributor: David Castellon (github.com/bobosito000)
# Contributor: Yannic Wehner <yannic.wehner@gmail.com> (github.com/ElCap1tan)
# Acknowledgment: This work is hugely based on `ros2-arch-deps` AUR
# package, maintained by T. Borgert.
pkgname=ros2-humble-base
pkgver=2024.05.23
pkgrel=1
pkgdesc="A set of software libraries and tools for building robot applications (base variant)"
url="https://index.ros.org/p/ros_base/#humble"
arch=('any')
license=('Apache')
depends=(
'asio'
'bullet'
'cmake'
'eigen'
'git'
'libyaml'
'pybind11'
'python'
'python-colcon-common-extensions'
'python-lark-parser'
'python-netifaces'
'python-numpy'
'python-yaml'
'tinyxml' # urdfdom
'tinyxml2'
)
makedepends=(
'procps-ng' # For 'free'
'python-rosinstall_generator'
'python-vcstool'
'git'
)
source=(
"ros2::git+https://github.com/ros2/ros2.git#tag=release-humble-${pkgver//.}"
"ros2_base::git+https://github.com/ros2/variants.git#branch=master"
)
sha256sums=('SKIP'
'SKIP')
prepare() {
# Clone the repos
printf "Cloning ros2 repositories\n"
mkdir -p $srcdir/ros2/src
vcs import $srcdir/ros2/src < $srcdir/ros2/ros2.repos
# Apply patches
printf "Patching sources\n"
# Missing cstdint includes
git -C "$srcdir/ros2/src/eProsima/Fast-DDS" cherry-pick -n add29f42591fe3d785df727aea128f250040834f
git -C "$srcdir/ros2/src/ros-tooling/libstatistics_collector" cherry-pick -n 1c340c97c731019d0c7b40f8c167b0ef666bcf75
git -C "$srcdir/ros2/src/ros2/rclcpp/rclcpp/include/rclcpp" cherry-pick -n 86c77143c96d85711a87f2a5adcc4d7f0fb0dbeb
git -C "$srcdir/ros2/src/ros2/rosbag2" cherry-pick -n 65c889e1fa55dd85a148b27b8c27dadc73238e67
}
build() {
# Disable parallel build if RAM is low
if [[ $(free | grep -Po "Mem:\s+\K\d+") -lt 8000000 ]]; then
printf "\nRAM is smaller than 8 GB. Parallel build will be disabled for stability.\n\n"
export COLCON_EXTRA_ARGS="${COLCON_EXTRA_ARGS} --executor sequential"
fi
## For people with the old version of makepkg.conf
#unset CPPFLAGS
## For people with the new version of makepkg.conf
CFLAGS=$(sed "s/-Wp,-D_FORTIFY_SOURCE=[0-9]\s//g" <(echo $CFLAGS))
CXXFLAGS=$(sed "s/-Wp,-D_FORTIFY_SOURCE=[0-9]\s//g" <(echo $CXXFLAGS))
# Build
colcon build --packages-up-to ros_base --merge-install ${COLCON_EXTRA_ARGS} --cmake-args -DBUILD_TESTING=OFF
}
package() {
mkdir -p $pkgdir/opt/ros/humble-base
cp -r $srcdir/install/* $pkgdir/opt/ros/humble-base/
}
|