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

Reply via email to