[Buildroot] [PATCH v2 08/18] package/pkg-generic.mk: move python fixup to generic package infrastructure
From: Herve Codina <herve.codina@bootlin.com>
Date: 2021-07-07 12:49:15
Hi, On Wed, 7 Jul 2021 14:21:16 +0200 Arnout Vandecappelle [off-list ref] wrote:
quoted
These finds are now called for all packages and .../lib/python* can be not present. In this case, find fails.A simpler way of doing that would be: $(if $(wildcard $(HOST_DIR)/lib/python* $(STAGING_DIR)/usr/lib/python*), $(Q)find $(HOST_DIR)/lib/python* $(STAGING_DIR)/usr/lib/python*
I think this does not solve the problem. find fails if at least one of the 2 paths are not present. Something like this (not tested) is needed. $(if $(wildcard $(HOST_DIR)/lib/python* $(STAGING_DIR)/usr/lib/python*), $(Q)find $(wildcard $(HOST_DIR)/lib/python* $(STAGING_DIR)/usr/lib/python*)
quoted
Using '-path' avoid this failure if files/dirs are not present. I wanted to mimic fixup-libtool-files. And so performed 2 calls. One for HOST_DIR and the other for STAGING_DIR. For HOST_DIR, the previous find searched in $(HOST_DIR)/lib, for STAGING_DIR, it searched in $(STAGING_DIR)/usr/lib, That's why I wrote the macro with -path '$(2)/lib/python*' -o -path '$(2)/usr/lib/python*' We can simplify the call using: $(Q)find $(2) -path '$(2)/usr/lib/python*' -name ... This assumes: (1) python stuff will not install anything in $(STAGING_DIR)/lib/python*This you can safely assume.
Ok.
quoted
(2) $(HOST_DIR)/usr will always be a symlink to $(HOST_DIR)/.Although for now you can assume this, ideally we would like to have the possibility to get rid of the usr->. symlink. So if you can avoid relying on it it would be better.
Right. Assuming, the symlink not present, can we be sure that host python stuff will be installed only in $(HOST_DIR)/lib/python* ? Herv? -- Herv? Codina, Bootlin Embedded Linux and Kernel engineering https://bootlin.com