On Sun, Apr 20, 2025 at 08:59:53PM +0200, Ladislav Michl wrote:
> Doing all inside makefile quite simplifies it and performance is
> probably not critical here.
echo in a subshell is the bottleneck. Here's complete version as a patch
on the top of original one (there are more packages to ignore, which is
left as an excercise for the reader):
diff --git a/rules/post/ptxd_make_repology.make
b/rules/post/ptxd_make_repology.make
index b243ed03e..0083ded34 100644
--- a/rules/post/ptxd_make_repology.make
+++ b/rules/post/ptxd_make_repology.make
@@ -6,15 +6,40 @@
# see the README file.
#
+PTX_PACKAGES_IGNORE := \
+ base \
+ cryptodev-api
+
PHONY += ptxdist-repology
+ptx_packages_reported:=$(sort $(filter-out host-system-%,$(filter-out
host-%,$(filter-out image-%,$(PTX_PACKAGES_ALL)))))
+ptx_packages_reported:=$(filter-out
$(PTX_PACKAGES_IGNORE),$(ptx_packages_reported))
+ptx_package_last:=$(lastword $(ptx_packages_reported))
+ptx_packages_reported:=$(filter-out
$(ptx_package_last),$(ptx_packages_reported))
+
+ptx/repology-print = \
+ $(info $(space) "name": "$(1)"$(comma)) \
+ $(info $(space) "version":
"$($(PTX_MAP_TO_PACKAGE_$(1))_VERSION)"$(comma)) \
+ $(info $(space) "license": "$($(PTX_MAP_TO_PACKAGE_$(1))_LICENSE)")
+
+ptx/repology-item = \
+ $(info $(space) {) \
+ $(call ptx/repology-print,$(1)) \
+ $(info $(space) }$(comma))
+
+ptx/repology-lastitem = \
+ $(info $(space) {) \
+ $(call ptx/repology-print,$(1)) \
+ $(info $(space) })
+
ptx/repology = \
- $(call ptx/env) \
- ptx_dgen_rulesfiles_make="$(PTX_DGEN_RULESFILES_MAKE)" \
- ptxd_make_world_repology
+ $(info [) \
+ $(foreach pkg,$(ptx_packages_reported), \
+ $(call ptx/repology-item,$(pkg))$(ptx/nl)) \
+ $(call ptx/repology-lastitem,$(ptx_package_last)) \
+ $(info ])
ptxdist-repology:
- @$(call targetinfo)
@$(call ptx/repology)
# vim: syntax=make