* [Buildroot] [PATCH v2 1/1] Makefile: fix SDK relocation for per-package-dirs
@ 2022-12-27 15:43 Brandon Maier via buildroot
2023-10-15 17:12 ` Charles Hardin
2023-10-15 18:20 ` Arnout Vandecappelle via buildroot
0 siblings, 2 replies; 4+ messages in thread
From: Brandon Maier via buildroot @ 2022-12-27 15:43 UTC (permalink / raw)
To: buildroot; +Cc: Brandon Maier
The relocate-sdk.sh script does not work correctly when
BR2_PER_PACKAGE_DIRECTORIES is enabled. relocate-sdk.sh expects
everything to point at $HOST_DIR, but each package will be pointing at
its $(O)/per-package/*/host.
Use the same command for scrubing host paths during the build, to scrub
to the final host directory location.
Signed-off-by: Brandon Maier <brandon.maier@collins.com>
---
v2:
- drop original implementation in favor of reusing the existing
PPD_FIXUP_PATHS code.
---
Makefile | 1 +
package/pkg-generic.mk | 12 +-----------
package/pkg-utils.mk | 15 +++++++++++++++
3 files changed, 17 insertions(+), 11 deletions(-)
diff --git a/Makefile b/Makefile
index 88f90cd2fa..ac3540b36c 100644
--- a/Makefile
+++ b/Makefile
@@ -598,6 +598,7 @@ prepare-sdk: world
@$(call MESSAGE,"Rendering the SDK relocatable")
PER_PACKAGE_DIR=$(PER_PACKAGE_DIR) $(TOPDIR)/support/scripts/fix-rpath host
PER_PACKAGE_DIR=$(PER_PACKAGE_DIR) $(TOPDIR)/support/scripts/fix-rpath staging
+ $(call ppd-fixup-paths,$(BASE_DIR))
$(INSTALL) -m 755 $(TOPDIR)/support/misc/relocate-sdk.sh $(HOST_DIR)/relocate-sdk.sh
mkdir -p $(HOST_DIR)/share/buildroot
echo $(HOST_DIR) > $(HOST_DIR)/share/buildroot/sdk-location
diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
index f24e03a325..210af1bbef 100644
--- a/package/pkg-generic.mk
+++ b/package/pkg-generic.mk
@@ -92,18 +92,8 @@ endif
ifeq ($(BR2_PER_PACKAGE_DIRECTORIES),y)
-# Ensure files like .la, .pc, .pri, .cmake, and so on, point to the
-# proper staging and host directories for the current package: find
-# all text files that contain the PPD root, and replace it with the
-# current package's PPD.
define PPD_FIXUP_PATHS
- $(Q)grep --binary-files=without-match -lrZ '$(PER_PACKAGE_DIR)/[^/]\+/' $(HOST_DIR) \
- |while read -d '' f; do \
- file -b --mime-type "$${f}" | grep -q '^text/' || continue; \
- printf '%s\0' "$${f}"; \
- done \
- |xargs -0 --no-run-if-empty \
- $(SED) 's:$(PER_PACKAGE_DIR)/[^/]\+/:$(PER_PACKAGE_DIR)/$($(PKG)_NAME)/:g'
+ $(call ppd-fixup-paths,$(PER_PACKAGE_DIR)/$($(PKG)_NAME))
endef
# Remove python's pre-compiled "sysconfigdata", as it may contain paths to
diff --git a/package/pkg-utils.mk b/package/pkg-utils.mk
index 0945e6ed31..f22562fbed 100644
--- a/package/pkg-utils.mk
+++ b/package/pkg-utils.mk
@@ -233,6 +233,21 @@ define prepare-per-package-directory
$(call per-package-rsync,$(1),host,$(HOST_DIR))
$(call per-package-rsync,$(1),target,$(TARGET_DIR))
endef
+
+# Ensure files like .la, .pc, .pri, .cmake, and so on, point to the
+# proper staging and host directories for the current package: find
+# all text files that contain the PPD root, and replace it with the
+# current package's PPD.
+# $1: destination root directory containing host and staging
+define ppd-fixup-paths
+ $(Q)grep --binary-files=without-match -lrZ '$(PER_PACKAGE_DIR)/[^/]\+/' $(HOST_DIR) \
+ |while read -d '' f; do \
+ file -b --mime-type "$${f}" | grep -q '^text/' || continue; \
+ printf '%s\0' "$${f}"; \
+ done \
+ |xargs -0 --no-run-if-empty \
+ $(SED) 's:$(PER_PACKAGE_DIR)/[^/]\+/:$(1)/:g'
+endef
endif
#
--
2.39.0
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [Buildroot] [PATCH v2 1/1] Makefile: fix SDK relocation for per-package-dirs
2022-12-27 15:43 [Buildroot] [PATCH v2 1/1] Makefile: fix SDK relocation for per-package-dirs Brandon Maier via buildroot
@ 2023-10-15 17:12 ` Charles Hardin
2023-10-15 18:20 ` Arnout Vandecappelle via buildroot
1 sibling, 0 replies; 4+ messages in thread
From: Charles Hardin @ 2023-10-15 17:12 UTC (permalink / raw)
To: Brandon Maier; +Cc: buildroot
On Tue, Dec 27, 2022 at 7:43 AM Brandon Maier via buildroot
<buildroot@buildroot.org> wrote:
>
> The relocate-sdk.sh script does not work correctly when
> BR2_PER_PACKAGE_DIRECTORIES is enabled. relocate-sdk.sh expects
> everything to point at $HOST_DIR, but each package will be pointing at
> its $(O)/per-package/*/host.
>
> Use the same command for scrubing host paths during the build, to scrub
> to the final host directory location.
>
> Signed-off-by: Brandon Maier <brandon.maier@collins.com>
Acked-by: Charles Hardin <ckhardin@gmail.com>
Tested and verified the host paths in the shasum as an example
> ---
> v2:
> - drop original implementation in favor of reusing the existing
> PPD_FIXUP_PATHS code.
> ---
> Makefile | 1 +
> package/pkg-generic.mk | 12 +-----------
> package/pkg-utils.mk | 15 +++++++++++++++
> 3 files changed, 17 insertions(+), 11 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index 88f90cd2fa..ac3540b36c 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -598,6 +598,7 @@ prepare-sdk: world
> @$(call MESSAGE,"Rendering the SDK relocatable")
> PER_PACKAGE_DIR=$(PER_PACKAGE_DIR) $(TOPDIR)/support/scripts/fix-rpath host
> PER_PACKAGE_DIR=$(PER_PACKAGE_DIR) $(TOPDIR)/support/scripts/fix-rpath staging
> + $(call ppd-fixup-paths,$(BASE_DIR))
> $(INSTALL) -m 755 $(TOPDIR)/support/misc/relocate-sdk.sh $(HOST_DIR)/relocate-sdk.sh
> mkdir -p $(HOST_DIR)/share/buildroot
> echo $(HOST_DIR) > $(HOST_DIR)/share/buildroot/sdk-location
> diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
> index f24e03a325..210af1bbef 100644
> --- a/package/pkg-generic.mk
> +++ b/package/pkg-generic.mk
> @@ -92,18 +92,8 @@ endif
>
> ifeq ($(BR2_PER_PACKAGE_DIRECTORIES),y)
>
> -# Ensure files like .la, .pc, .pri, .cmake, and so on, point to the
> -# proper staging and host directories for the current package: find
> -# all text files that contain the PPD root, and replace it with the
> -# current package's PPD.
> define PPD_FIXUP_PATHS
> - $(Q)grep --binary-files=without-match -lrZ '$(PER_PACKAGE_DIR)/[^/]\+/' $(HOST_DIR) \
> - |while read -d '' f; do \
> - file -b --mime-type "$${f}" | grep -q '^text/' || continue; \
> - printf '%s\0' "$${f}"; \
> - done \
> - |xargs -0 --no-run-if-empty \
> - $(SED) 's:$(PER_PACKAGE_DIR)/[^/]\+/:$(PER_PACKAGE_DIR)/$($(PKG)_NAME)/:g'
> + $(call ppd-fixup-paths,$(PER_PACKAGE_DIR)/$($(PKG)_NAME))
> endef
>
> # Remove python's pre-compiled "sysconfigdata", as it may contain paths to
> diff --git a/package/pkg-utils.mk b/package/pkg-utils.mk
> index 0945e6ed31..f22562fbed 100644
> --- a/package/pkg-utils.mk
> +++ b/package/pkg-utils.mk
> @@ -233,6 +233,21 @@ define prepare-per-package-directory
> $(call per-package-rsync,$(1),host,$(HOST_DIR))
> $(call per-package-rsync,$(1),target,$(TARGET_DIR))
> endef
> +
> +# Ensure files like .la, .pc, .pri, .cmake, and so on, point to the
> +# proper staging and host directories for the current package: find
> +# all text files that contain the PPD root, and replace it with the
> +# current package's PPD.
> +# $1: destination root directory containing host and staging
> +define ppd-fixup-paths
> + $(Q)grep --binary-files=without-match -lrZ '$(PER_PACKAGE_DIR)/[^/]\+/' $(HOST_DIR) \
> + |while read -d '' f; do \
> + file -b --mime-type "$${f}" | grep -q '^text/' || continue; \
> + printf '%s\0' "$${f}"; \
> + done \
> + |xargs -0 --no-run-if-empty \
> + $(SED) 's:$(PER_PACKAGE_DIR)/[^/]\+/:$(1)/:g'
> +endef
> endif
>
> #
> --
> 2.39.0
>
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Buildroot] [PATCH v2 1/1] Makefile: fix SDK relocation for per-package-dirs
2022-12-27 15:43 [Buildroot] [PATCH v2 1/1] Makefile: fix SDK relocation for per-package-dirs Brandon Maier via buildroot
2023-10-15 17:12 ` Charles Hardin
@ 2023-10-15 18:20 ` Arnout Vandecappelle via buildroot
2023-10-26 7:47 ` Peter Korsgaard
1 sibling, 1 reply; 4+ messages in thread
From: Arnout Vandecappelle via buildroot @ 2023-10-15 18:20 UTC (permalink / raw)
To: Brandon Maier, buildroot; +Cc: Charles Hardin
On 27/12/2022 16:43, Brandon Maier wrote:
> The relocate-sdk.sh script does not work correctly when
> BR2_PER_PACKAGE_DIRECTORIES is enabled. relocate-sdk.sh expects
> everything to point at $HOST_DIR, but each package will be pointing at
> its $(O)/per-package/*/host.
>
> Use the same command for scrubing host paths during the build, to scrub
> to the final host directory location.
>
> Signed-off-by: Brandon Maier <brandon.maier@collins.com>
Applied to master, thanks.
And thank you Charles for the review.
Regards,
Arnout
> ---
> v2:
> - drop original implementation in favor of reusing the existing
> PPD_FIXUP_PATHS code.
> ---
> Makefile | 1 +
> package/pkg-generic.mk | 12 +-----------
> package/pkg-utils.mk | 15 +++++++++++++++
> 3 files changed, 17 insertions(+), 11 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index 88f90cd2fa..ac3540b36c 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -598,6 +598,7 @@ prepare-sdk: world
> @$(call MESSAGE,"Rendering the SDK relocatable")
> PER_PACKAGE_DIR=$(PER_PACKAGE_DIR) $(TOPDIR)/support/scripts/fix-rpath host
> PER_PACKAGE_DIR=$(PER_PACKAGE_DIR) $(TOPDIR)/support/scripts/fix-rpath staging
> + $(call ppd-fixup-paths,$(BASE_DIR))
> $(INSTALL) -m 755 $(TOPDIR)/support/misc/relocate-sdk.sh $(HOST_DIR)/relocate-sdk.sh
> mkdir -p $(HOST_DIR)/share/buildroot
> echo $(HOST_DIR) > $(HOST_DIR)/share/buildroot/sdk-location
> diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
> index f24e03a325..210af1bbef 100644
> --- a/package/pkg-generic.mk
> +++ b/package/pkg-generic.mk
> @@ -92,18 +92,8 @@ endif
>
> ifeq ($(BR2_PER_PACKAGE_DIRECTORIES),y)
>
> -# Ensure files like .la, .pc, .pri, .cmake, and so on, point to the
> -# proper staging and host directories for the current package: find
> -# all text files that contain the PPD root, and replace it with the
> -# current package's PPD.
> define PPD_FIXUP_PATHS
> - $(Q)grep --binary-files=without-match -lrZ '$(PER_PACKAGE_DIR)/[^/]\+/' $(HOST_DIR) \
> - |while read -d '' f; do \
> - file -b --mime-type "$${f}" | grep -q '^text/' || continue; \
> - printf '%s\0' "$${f}"; \
> - done \
> - |xargs -0 --no-run-if-empty \
> - $(SED) 's:$(PER_PACKAGE_DIR)/[^/]\+/:$(PER_PACKAGE_DIR)/$($(PKG)_NAME)/:g'
> + $(call ppd-fixup-paths,$(PER_PACKAGE_DIR)/$($(PKG)_NAME))
> endef
>
> # Remove python's pre-compiled "sysconfigdata", as it may contain paths to
> diff --git a/package/pkg-utils.mk b/package/pkg-utils.mk
> index 0945e6ed31..f22562fbed 100644
> --- a/package/pkg-utils.mk
> +++ b/package/pkg-utils.mk
> @@ -233,6 +233,21 @@ define prepare-per-package-directory
> $(call per-package-rsync,$(1),host,$(HOST_DIR))
> $(call per-package-rsync,$(1),target,$(TARGET_DIR))
> endef
> +
> +# Ensure files like .la, .pc, .pri, .cmake, and so on, point to the
> +# proper staging and host directories for the current package: find
> +# all text files that contain the PPD root, and replace it with the
> +# current package's PPD.
> +# $1: destination root directory containing host and staging
> +define ppd-fixup-paths
> + $(Q)grep --binary-files=without-match -lrZ '$(PER_PACKAGE_DIR)/[^/]\+/' $(HOST_DIR) \
> + |while read -d '' f; do \
> + file -b --mime-type "$${f}" | grep -q '^text/' || continue; \
> + printf '%s\0' "$${f}"; \
> + done \
> + |xargs -0 --no-run-if-empty \
> + $(SED) 's:$(PER_PACKAGE_DIR)/[^/]\+/:$(1)/:g'
> +endef
> endif
>
> #
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Buildroot] [PATCH v2 1/1] Makefile: fix SDK relocation for per-package-dirs
2023-10-15 18:20 ` Arnout Vandecappelle via buildroot
@ 2023-10-26 7:47 ` Peter Korsgaard
0 siblings, 0 replies; 4+ messages in thread
From: Peter Korsgaard @ 2023-10-26 7:47 UTC (permalink / raw)
To: Arnout Vandecappelle via buildroot; +Cc: Charles Hardin, Brandon Maier
>>>>> "Arnout" == Arnout Vandecappelle via buildroot <buildroot@buildroot.org> writes:
> On 27/12/2022 16:43, Brandon Maier wrote:
>> The relocate-sdk.sh script does not work correctly when
>> BR2_PER_PACKAGE_DIRECTORIES is enabled. relocate-sdk.sh expects
>> everything to point at $HOST_DIR, but each package will be pointing at
>> its $(O)/per-package/*/host.
>> Use the same command for scrubing host paths during the build, to
>> scrub
>> to the final host directory location.
>> Signed-off-by: Brandon Maier <brandon.maier@collins.com>
> Applied to master, thanks.
> And thank you Charles for the review.
Committed to 2023.02.x and 2023.08.x, thanks.
--
Bye, Peter Korsgaard
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2023-10-26 7:48 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-12-27 15:43 [Buildroot] [PATCH v2 1/1] Makefile: fix SDK relocation for per-package-dirs Brandon Maier via buildroot
2023-10-15 17:12 ` Charles Hardin
2023-10-15 18:20 ` Arnout Vandecappelle via buildroot
2023-10-26 7:47 ` Peter Korsgaard
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.