Closed mjbogusz closed 3 years ago
Hi, @mjbogusz. Nice work! I'm absolutely interested in maintaining the package, and the changes you've mentioned sound okay.
I'm too busy this week, so let me check back in a few days and we'll discuss in more detail.
Quick note: I'd gave galactic a go a few days after it was released, but my initial pkgbuild was too messy and untested to push it into AUR. For now I'm just going to paste it below, although I think you've already figured most parts out. We could use it to improve your work, if needed.
pkgname=ros2-galactic
pkgver=r227.1c17ab9
pkgrel=1
pkgdesc="A set of software libraries and tools for building robot applications (Galactic Geochelone)"
url="https://docs.ros.org/en/galactic/"
arch=('any')
license=('Apache')
depends=('ros2-arch-deps'
'gmock'
'sip4'
# AUR
'foonathan_memory'
)
source=("ros2::git+https://github.com/ros2/ros2#tag=release-galactic-20210523"
"mimick_vendor.patch"
"yaml_cpp_vendor.patch"
"iceoryx.patch"
"iceoryx_posh.patch"
"iceoryx_dds.patch"
"googletest.patch")
sha256sums=('SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP')
install=ros2-galactic.install
prepare() {
# Check locale
locale | grep LANG | grep UTF-8
if [[ $? -ne 0 ]]; then
printf "Locale must support UTF-8. See https://wiki.archlinux.org/index.php/locale
or https://wiki.archlinux.org/index.php/locale ."
exit 1
fi
# Create required symlinks (see https://wiki.archlinux.org/index.php/ROS)
sudo mkdir -p /usr/share/sip
sudo ln -sf /usr/lib/python3.9/site-packages/PyQt5 /usr/share/sip/.
sudo ln -sf /usr/lib/python3.9/site-packages/PyQt5/bindings/* /usr/share/sip/PyQt5/.
# Clone the repos
rm -rf $srcdir/ros2/src
mkdir -p $srcdir/ros2/src
vcs import $srcdir/ros2/src < $srcdir/ros2/ros2.repos
# Fix some issues in the code (TODO: Gradually move to upstream)
## mimick_vendor:
patch --forward $srcdir/ros2/src/ros2/mimick_vendor/CMakeLists.txt mimick_vendor.patch
## yaml_cpp_vendor:
patch --forward $srcdir/ros2/src/ros2/yaml_cpp_vendor/CMakeLists.txt yaml_cpp_vendor.patch
## ros1_bridge
git -C $srcdir/ros2/src/ros2/ros1_bridge revert 81b7610568286ec7b390c64cf6207b362d0a6550 --no-edit
## iceoryx
cp iceoryx.patch $srcdir/ros2/src/eclipse-iceoryx/iceoryx/
git -C $srcdir/ros2/src/eclipse-iceoryx/iceoryx apply iceoryx.patch
## google_benchmark_vendor
git -C $srcdir/ros2/src/ament/google_benchmark_vendor cherry-pick 9416ce954dd66778b1d92c9bb57248fa4c39fa12
## [iceoryx_posh, iceoryx_dds] :: cpptoml
patch --forward $srcdir/ros2/src/eclipse-iceoryx/iceoryx/iceoryx_posh/cmake/cpptoml/cpptoml.cmake.in iceoryx_posh.patch
patch --forward $srcdir/ros2/src/eclipse-iceoryx/iceoryx/iceoryx_dds/cmake/cpptoml/cpptoml.cmake.in iceoryx_dds.patch
## cyclonedds
git -C $srcdir/ros2/src/eclipse-cyclonedds/cyclonedds cherry-pick bdf270a588aae77d0f1a0f0070b53ad1388da61c
## googletest
patch --forward $srcdir/ros2/src/ament/googletest/googletest/src/gtest-death-test.cc googletest.patch
}
build() {
colcon build --merge-install
}
package() {
mkdir -p $pkgdir/opt/ros2/galactic
cp -r $srcdir/install/* $pkgdir/opt/ros2/galactic/
}
with these patch files:
googletest.patch:1291c1291
googletest.patch:< int dummy;
googletest.patch:---
googletest.patch:> int dummy = 0;
googletest.patch:1299c1299
googletest.patch:< int dummy;
googletest.patch:---
googletest.patch:> int dummy = 0;
iceoryx_dds.patch:23,24c23,24
iceoryx_dds.patch:< GIT_REPOSITORY https://github.com/skystrife/cpptoml.git
iceoryx_dds.patch:< GIT_TAG v0.1.1
iceoryx_dds.patch:---
iceoryx_dds.patch:> GIT_REPOSITORY https://github.com/eddelbuettel/cpptoml.git
iceoryx_dds.patch:> GIT_TAG feature/g++-11
iceoryx.patch:diff --git a/iceoryx_posh/include/iceoryx_posh/internal/popo/building_blocks/condition_notifier.hpp b/iceoryx_posh/include/iceoryx_posh/internal/popo/building_blocks/condition_notifier.hpp
iceoryx.patch:index a14bfc59..fee33c07 100644
iceoryx.patch:--- a/iceoryx_posh/include/iceoryx_posh/internal/popo/building_blocks/condition_notifier.hpp
iceoryx.patch:+++ b/iceoryx_posh/include/iceoryx_posh/internal/popo/building_blocks/condition_notifier.hpp
iceoryx.patch:@@ -1,3 +1,4 @@
iceoryx.patch:+#include<limits>
iceoryx.patch: // Copyright (c) 2020 by Robert Bosch GmbH. All rights reserved.
iceoryx.patch: // Copyright (c) 2021 by Apex.AI Inc. All rights reserved.
iceoryx.patch: //
iceoryx.patch:diff --git a/iceoryx_posh/include/iceoryx_posh/internal/roudi/port_pool_data.hpp b/iceoryx_posh/include/iceoryx_posh/internal/roudi/port_pool_data.hpp
iceoryx.patch:index 985d67cd..fabcaece 100644
iceoryx.patch:--- a/iceoryx_posh/include/iceoryx_posh/internal/roudi/port_pool_data.hpp
iceoryx.patch:+++ b/iceoryx_posh/include/iceoryx_posh/internal/roudi/port_pool_data.hpp
iceoryx.patch:@@ -1,3 +1,4 @@
iceoryx.patch:+#include<limits>
iceoryx.patch: // Copyright (c) 2020 by Robert Bosch GmbH. All rights reserved.
iceoryx.patch: // Copyright (c) 2021 by Apex.AI Inc. All rights reserved.
iceoryx.patch: //
iceoryx.patch:diff --git a/iceoryx_posh/include/iceoryx_posh/popo/listener.hpp b/iceoryx_posh/include/iceoryx_posh/popo/listener.hpp
iceoryx.patch:index 2118d496..bb1c7ad3 100644
iceoryx.patch:--- a/iceoryx_posh/include/iceoryx_posh/popo/listener.hpp
iceoryx.patch:+++ b/iceoryx_posh/include/iceoryx_posh/popo/listener.hpp
iceoryx.patch:@@ -1,3 +1,4 @@
iceoryx.patch:+#include<limits>
iceoryx.patch: // Copyright (c) 2021 by Apex.AI Inc. All rights reserved.
iceoryx.patch: //
iceoryx.patch: // Licensed under the Apache License, Version 2.0 (the "License");
iceoryx.patch:diff --git a/iceoryx_posh/include/iceoryx_posh/popo/trigger.hpp b/iceoryx_posh/include/iceoryx_posh/popo/trigger.hpp
iceoryx.patch:index ea7c1f80..8bbd2ea9 100644
iceoryx.patch:--- a/iceoryx_posh/include/iceoryx_posh/popo/trigger.hpp
iceoryx.patch:+++ b/iceoryx_posh/include/iceoryx_posh/popo/trigger.hpp
iceoryx.patch:@@ -1,3 +1,4 @@
iceoryx.patch:+#include<limits>
iceoryx.patch: // Copyright (c) 2020, 2021 by Apex.AI Inc. All rights reserved.
iceoryx.patch: //
iceoryx.patch: // Licensed under the Apache License, Version 2.0 (the "License");
iceoryx.patch:diff --git a/iceoryx_posh/source/mepoo/chunk_settings.cpp b/iceoryx_posh/source/mepoo/chunk_settings.cpp
iceoryx.patch:index 056730b6..ee9bf1fa 100644
iceoryx.patch:--- a/iceoryx_posh/source/mepoo/chunk_settings.cpp
iceoryx.patch:+++ b/iceoryx_posh/source/mepoo/chunk_settings.cpp
iceoryx.patch:@@ -1,3 +1,4 @@
iceoryx.patch:+#include<limits>
iceoryx.patch: // Copyright (c) 2021 by Apex.AI Inc. All rights reserved.
iceoryx.patch: //
iceoryx.patch: // Licensed under the Apache License, Version 2.0 (the "License");
iceoryx.patch:diff --git a/iceoryx_posh/source/roudi/roudi_cmd_line_parser.cpp b/iceoryx_posh/source/roudi/roudi_cmd_line_parser.cpp
iceoryx.patch:index 65d49d4d..57cfcd0c 100644
iceoryx.patch:--- a/iceoryx_posh/source/roudi/roudi_cmd_line_parser.cpp
iceoryx.patch:+++ b/iceoryx_posh/source/roudi/roudi_cmd_line_parser.cpp
iceoryx.patch:@@ -1,3 +1,4 @@
iceoryx.patch:+#include<limits>
iceoryx.patch: // Copyright (c) 2020 by Robert Bosch GmbH, Apex.AI Inc. All rights reserved.
iceoryx.patch: //
iceoryx.patch: // Licensed under the Apache License, Version 2.0 (the "License");
iceoryx.patch:diff --git a/iceoryx_posh/test/moduletests/test_capro_service.cpp b/iceoryx_posh/test/moduletests/test_capro_service.cpp
iceoryx.patch:index d4d2ed8f..a10c7867 100644
iceoryx.patch:--- a/iceoryx_posh/test/moduletests/test_capro_service.cpp
iceoryx.patch:+++ b/iceoryx_posh/test/moduletests/test_capro_service.cpp
iceoryx.patch:@@ -1,3 +1,4 @@
iceoryx.patch:+#include<limits>
iceoryx.patch: // Copyright (c) 2019, 2021 by Robert Bosch GmbH. All rights reserved.
iceoryx.patch: //
iceoryx.patch: // Licensed under the Apache License, Version 2.0 (the "License");
iceoryx.patch:diff --git a/iceoryx_posh/test/moduletests/test_mepoo_chunk_header.cpp b/iceoryx_posh/test/moduletests/test_mepoo_chunk_header.cpp
iceoryx.patch:index ed7259df..6243396f 100644
iceoryx.patch:--- a/iceoryx_posh/test/moduletests/test_mepoo_chunk_header.cpp
iceoryx.patch:+++ b/iceoryx_posh/test/moduletests/test_mepoo_chunk_header.cpp
iceoryx.patch:@@ -1,3 +1,4 @@
iceoryx.patch:+#include<limits>
iceoryx.patch: // Copyright (c) 2020 - 2021 by Apex.AI Inc. All rights reserved.
iceoryx.patch: //
iceoryx.patch: // Licensed under the Apache License, Version 2.0 (the "License");
iceoryx.patch:diff --git a/iceoryx_posh/test/moduletests/test_mepoo_chunk_settings.cpp b/iceoryx_posh/test/moduletests/test_mepoo_chunk_settings.cpp
iceoryx.patch:index ab51e5cc..a5d389a5 100644
iceoryx.patch:--- a/iceoryx_posh/test/moduletests/test_mepoo_chunk_settings.cpp
iceoryx.patch:+++ b/iceoryx_posh/test/moduletests/test_mepoo_chunk_settings.cpp
iceoryx.patch:@@ -1,3 +1,4 @@
iceoryx.patch:+#include<limits>
iceoryx.patch: // Copyright (c) 2021 by Apex.AI Inc. All rights reserved.
iceoryx.patch: //
iceoryx.patch: // Licensed under the Apache License, Version 2.0 (the "License");
iceoryx.patch:diff --git a/iceoryx_posh/test/moduletests/test_popo_chunk_queue.cpp b/iceoryx_posh/test/moduletests/test_popo_chunk_queue.cpp
iceoryx.patch:index 7e65bbcf..56c83ec5 100644
iceoryx.patch:--- a/iceoryx_posh/test/moduletests/test_popo_chunk_queue.cpp
iceoryx.patch:+++ b/iceoryx_posh/test/moduletests/test_popo_chunk_queue.cpp
iceoryx.patch:@@ -1,3 +1,4 @@
iceoryx.patch:+#include<limits>
iceoryx.patch: // Copyright (c) 2020 by Robert Bosch GmbH. All rights reserved.
iceoryx.patch: // Copyright (c) 2021 by Apex.AI Inc. All rights reserved.
iceoryx.patch: //
iceoryx.patch:diff --git a/iceoryx_utils/include/iceoryx_utils/internal/cxx/convert.inl b/iceoryx_utils/include/iceoryx_utils/internal/cxx/convert.inl
iceoryx.patch:index 6f35b2ba..e06126f7 100644
iceoryx.patch:--- a/iceoryx_utils/include/iceoryx_utils/internal/cxx/convert.inl
iceoryx.patch:+++ b/iceoryx_utils/include/iceoryx_utils/internal/cxx/convert.inl
iceoryx.patch:@@ -1,3 +1,4 @@
iceoryx.patch:+#include<limits>
iceoryx.patch: // Copyright (c) 2019 by Robert Bosch GmbH. All rights reserved.
iceoryx.patch: //
iceoryx.patch: // Licensed under the Apache License, Version 2.0 (the "License");
iceoryx.patch:diff --git a/iceoryx_utils/include/iceoryx_utils/internal/relocatable_pointer/base_relative_pointer.hpp b/iceoryx_utils/include/iceoryx_utils/internal/relocatable_pointer/base_relative_pointer.hpp
iceoryx.patch:index 9ad88e50..3cdfda73 100644
iceoryx.patch:--- a/iceoryx_utils/include/iceoryx_utils/internal/relocatable_pointer/base_relative_pointer.hpp
iceoryx.patch:+++ b/iceoryx_utils/include/iceoryx_utils/internal/relocatable_pointer/base_relative_pointer.hpp
iceoryx.patch:@@ -1,3 +1,4 @@
iceoryx.patch:+#include<limits>
iceoryx.patch: // Copyright (c) 2019 by Robert Bosch GmbH. All rights reserved.
iceoryx.patch: // Copyright (c) 2021 by Apex.AI Inc. All rights reserved.
iceoryx.patch: //
iceoryx.patch:diff --git a/iceoryx_utils/include/iceoryx_utils/internal/relocatable_pointer/pointer_repository.hpp b/iceoryx_utils/include/iceoryx_utils/internal/relocatable_pointer/pointer_repository.hpp
iceoryx.patch:index 1f9f57d5..add691e2 100644
iceoryx.patch:--- a/iceoryx_utils/include/iceoryx_utils/internal/relocatable_pointer/pointer_repository.hpp
iceoryx.patch:+++ b/iceoryx_utils/include/iceoryx_utils/internal/relocatable_pointer/pointer_repository.hpp
iceoryx.patch:@@ -1,3 +1,4 @@
iceoryx.patch:+#include<limits>
iceoryx.patch: // Copyright (c) 2019 by Robert Bosch GmbH. All rights reserved.
iceoryx.patch: // Copyright (c) 2021 by Apex.AI Inc. All rights reserved.
iceoryx.patch: //
iceoryx.patch:diff --git a/iceoryx_utils/include/iceoryx_utils/internal/relocatable_pointer/relative_pointer_data.hpp b/iceoryx_utils/include/iceoryx_utils/internal/relocatable_pointer/relative_pointer_data.hpp
iceoryx.patch:index 03c3fea6..f75e04be 100644
iceoryx.patch:--- a/iceoryx_utils/include/iceoryx_utils/internal/relocatable_pointer/relative_pointer_data.hpp
iceoryx.patch:+++ b/iceoryx_utils/include/iceoryx_utils/internal/relocatable_pointer/relative_pointer_data.hpp
iceoryx.patch:@@ -1,3 +1,4 @@
iceoryx.patch:+#include<limits>
iceoryx.patch: // Copyright (c) 2021 by Apex.AI Inc. All rights reserved.
iceoryx.patch: //
iceoryx.patch: // Licensed under the Apache License, Version 2.0 (the "License");
iceoryx.patch:diff --git a/iceoryx_utils/include/iceoryx_utils/internal/units/duration.inl b/iceoryx_utils/include/iceoryx_utils/internal/units/duration.inl
iceoryx.patch:index 49b54412..70830c89 100644
iceoryx.patch:--- a/iceoryx_utils/include/iceoryx_utils/internal/units/duration.inl
iceoryx.patch:+++ b/iceoryx_utils/include/iceoryx_utils/internal/units/duration.inl
iceoryx.patch:@@ -1,3 +1,4 @@
iceoryx.patch:+#include<limits>
iceoryx.patch: // Copyright (c) 2019, 2021 by Robert Bosch GmbH, Apex.AI Inc. All rights reserved.
iceoryx.patch: //
iceoryx.patch: // Licensed under the Apache License, Version 2.0 (the "License");
iceoryx.patch:diff --git a/iceoryx_utils/include/iceoryx_utils/log/logstream.hpp b/iceoryx_utils/include/iceoryx_utils/log/logstream.hpp
iceoryx.patch:index 7d3c538b..aa9ed557 100644
iceoryx.patch:--- a/iceoryx_utils/include/iceoryx_utils/log/logstream.hpp
iceoryx.patch:+++ b/iceoryx_utils/include/iceoryx_utils/log/logstream.hpp
iceoryx.patch:@@ -1,3 +1,4 @@
iceoryx.patch:+#include<limits>
iceoryx.patch: // Copyright (c) 2019 by Robert Bosch GmbH. All rights reserved.
iceoryx.patch: //
iceoryx.patch: // Licensed under the Apache License, Version 2.0 (the "License");
iceoryx.patch:diff --git a/iceoryx_utils/source/concurrent/loffli.cpp b/iceoryx_utils/source/concurrent/loffli.cpp
iceoryx.patch:index 48105953..a9d2f595 100644
iceoryx.patch:--- a/iceoryx_utils/source/concurrent/loffli.cpp
iceoryx.patch:+++ b/iceoryx_utils/source/concurrent/loffli.cpp
iceoryx.patch:@@ -1,3 +1,4 @@
iceoryx.patch:+#include<limits>
iceoryx.patch: // Copyright (c) 2019 by Robert Bosch GmbH. All rights reserved.
iceoryx.patch: // Copyright (c) 2021 by Apex.AI Inc. All rights reserved.
iceoryx.patch: //
iceoryx.patch:diff --git a/iceoryx_utils/source/units/duration.cpp b/iceoryx_utils/source/units/duration.cpp
iceoryx.patch:index edd53cab..4e0aa5b9 100644
iceoryx.patch:--- a/iceoryx_utils/source/units/duration.cpp
iceoryx.patch:+++ b/iceoryx_utils/source/units/duration.cpp
iceoryx.patch:@@ -1,3 +1,4 @@
iceoryx.patch:+#include<limits>
iceoryx.patch: // Copyright (c) 2019, 2021 by Robert Bosch GmbH, Apex.AI Inc. All rights reserved.
iceoryx.patch: //
iceoryx.patch: // Licensed under the Apache License, Version 2.0 (the "License");
iceoryx.patch:diff --git a/iceoryx_utils/test/moduletests/test_cxx_helplets.cpp b/iceoryx_utils/test/moduletests/test_cxx_helplets.cpp
iceoryx.patch:index 8f07dfbf..27960bcf 100644
iceoryx.patch:--- a/iceoryx_utils/test/moduletests/test_cxx_helplets.cpp
iceoryx.patch:+++ b/iceoryx_utils/test/moduletests/test_cxx_helplets.cpp
iceoryx.patch:@@ -1,3 +1,4 @@
iceoryx.patch:+#include<limits>
iceoryx.patch: // Copyright (c) 2019 by Robert Bosch GmbH. All rights reserved.
iceoryx.patch: // Copyright (c) 2021 by Apex AI Inc. All rights reserved.
iceoryx.patch: //
iceoryx.patch:diff --git a/iceoryx_utils/test/moduletests/test_posix_signal_handler.cpp b/iceoryx_utils/test/moduletests/test_posix_signal_handler.cpp
iceoryx.patch:index decca8f3..4622d2d2 100644
iceoryx.patch:--- a/iceoryx_utils/test/moduletests/test_posix_signal_handler.cpp
iceoryx.patch:+++ b/iceoryx_utils/test/moduletests/test_posix_signal_handler.cpp
iceoryx.patch:@@ -1,3 +1,4 @@
iceoryx.patch:+#include<limits>
iceoryx.patch: // Copyright (c) 2021 by Apex.AI Inc. All rights reserved.
iceoryx.patch: //
iceoryx.patch: // Licensed under the Apache License, Version 2.0 (the "License");
iceoryx.patch:diff --git a/iceoryx_utils/test/moduletests/test_unit_duration.cpp b/iceoryx_utils/test/moduletests/test_unit_duration.cpp
iceoryx.patch:index ec2bd613..95042cc5 100644
iceoryx.patch:--- a/iceoryx_utils/test/moduletests/test_unit_duration.cpp
iceoryx.patch:+++ b/iceoryx_utils/test/moduletests/test_unit_duration.cpp
iceoryx.patch:@@ -1,3 +1,4 @@
iceoryx.patch:+#include<limits>
iceoryx.patch: // Copyright (c) 2019 - 2020 by Robert Bosch GmbH. All rights reserved.
iceoryx.patch: // Copyright (c) 2021 by Apex.AI Inc. All rights reserved.
iceoryx.patch: //
iceoryx_posh.patch:23,24c23,24
iceoryx_posh.patch:< GIT_REPOSITORY https://github.com/skystrife/cpptoml.git
iceoryx_posh.patch:< GIT_TAG v0.1.1
iceoryx_posh.patch:---
iceoryx_posh.patch:> GIT_REPOSITORY https://github.com/eddelbuettel/cpptoml.git
iceoryx_posh.patch:> GIT_TAG feature/g++-11
mimick_vendor.patch:10a11,12
mimick_vendor.patch:> list(APPEND cmake_configure_args -DCMAKE_C_FLAGS="-O2")
mimick_vendor.patch:> list(APPEND cmake_configure_args -DCMAKE_CXX_FLAGS="-O2")
yaml_cpp_vendor.patch:18,19c18,19
yaml_cpp_vendor.patch:< list(APPEND YAML_C_FLAGS "-w")
yaml_cpp_vendor.patch:< list(APPEND YAML_CXX_FLAGS "-std=c++14 -w")
yaml_cpp_vendor.patch:---
yaml_cpp_vendor.patch:> set(YAML_C_FLAGS "${YAML_C_FLAGS} -w")
yaml_cpp_vendor.patch:> set(YAML_CXX_FLAGS "${YAML_CXX_FLAGS} -std=c++14 -w")
And, just one more thing: when building the workspace I was running out of memory (4 threads, 8GB RAM) - adding
--executor sequential
limited the number of packages built simultaneously to 1 and solved the issue. What do you think about printing a note on that pre-build?
I didn't have this problem on my laptop (16 GB RAM). Ideally we could dynamically check free RAM against a threshold and activate the option if needed, and print out a log message.
For dynamic activation of the sequential executor we would have to somehow heuristically predict the memory requirements against the number of threads and memory used pre-build, but that seems like an overkill ;)
As for the patches applied, I've tried to check out upstream branches and cherry-pick available fixes where possible, resorting to local patches only when necessary.
However, I see you're applying some patches I didn't have to (yaml_cpp_vendor
and googletest
) and that we had different approaches to google_benchmark_vendor
- I had to use a local patch because the soversion.patch
that the vendor package was applying was causing build errors for me.
We should also consider dropping the mimick_vendor
patch in favor of unsetting CPPFLAGS
, as per https://github.com/ros2/mimick_vendor/issues/9#issuecomment-719984905 - setting an -O
flag might result in undesired behavior.
Hi, @mjbogusz
I've created this repo from your fork. I've also added a few changes on top of it, mostly based on your observations about mimick_vendor etc. I've also implemented a simple RAM check that disables parallel build if RAM is smaller than 16 GB (because 16 has proven to work). It should be fine in most cases...
Also, the AUR package is live! (ros2-galactic)
We can close this thread now. If you have more comments, please make issues/PRs at the new repo.
Thanks again for your contributions!
Hi, I've made a mostly-working PKGBUILD for Galactic based on your Foxy version.
This PR is mostly intended as a place for a discussion, though - as I'm not using Arch on a daily basis I don't want to push the package to AUR only to unmaintain it immediately. If you'd be willing to take over, I'd be happy to transfer the ownership of the repository (or you could fork it back or pull it to another branch or something like that).
Few notes on my changes (besides switching to Galactic):
diff
andpatch
togit diff --patch
andgit apply
for generating and applying the aforementioned patches - I think it's cleaner and easier to maintain this way.gitignore
according to https://github.com/github/gitignore/blob/master/ArchLinuxPackages.gitignorepre_install()
(I'm not sure if that's required for building the package?)git checkout
for patched packages insteadAnd, just one more thing: when building the workspace I was running out of memory (4 threads, 8GB RAM) - adding
--executor sequential
limited the number of packages built simultaneously to 1 and solved the issue. What do you think about printing a note on that pre-build?