From 985bdc3b4d765f4a60acd96db65d1a840eca3aea Mon Sep 17 00:00:00 2001 From: Till Wegmueller Date: Sun, 7 May 2023 15:49:13 +0200 Subject: [PATCH 01/24] Repology: Add initial metadata generation --- make-rules/common.mk | 2 ++ make-rules/repology.mk | 24 ++++++++++++++++++++++++ userland-gate.kdl | 5 +++++ 3 files changed, 31 insertions(+) create mode 100644 make-rules/repology.mk create mode 100644 userland-gate.kdl diff --git a/make-rules/common.mk b/make-rules/common.mk index b0e44442bc6..a6f659d3ebd 100644 --- a/make-rules/common.mk +++ b/make-rules/common.mk @@ -240,3 +240,5 @@ COMPONENT_BUILD_CMAKE_ARGS += -j$(PARALLEL_JOBS) COMPONENT_BUILD_GMAKE_ARGS += -j$(PARALLEL_JOBS) COMPONENT_BUILD_SETUP_PY_ARGS += -j$(PARALLEL_JOBS) endif + +include $(WS_MAKE_RULES)/repology.mk diff --git a/make-rules/repology.mk b/make-rules/repology.mk new file mode 100644 index 00000000000..6e3dd6f5c55 --- /dev/null +++ b/make-rules/repology.mk @@ -0,0 +1,24 @@ +# +# This file and its contents are supplied under the terms of the +# Common Development and Distribution License ("CDDL"), version 1.0. +# You may only use this file in accordance with the terms of version +# 1.0 of the CDDL. +# +# A full copy of the text of the CDDL should have accompanied this +# source. A copy of the CDDL is also available via the Internet at +# http://www.illumos.org/license/CDDL. +# + +# +# Copyright 2018 Adam Stevko +# + +PORTS="~/.cargo/target/debug/ports" + +generate-pakage-kdl: + @echo "generating package.kdl for $(COMPONENT_NAME)" + $(PORTS) create $(COMPONENT_NAME) +# @for package in $(REQUIRED_PACKAGES) ; do \ +# echo $$package ; \ +# done | LANG=C LC_ALL=C sort -u + diff --git a/userland-gate.kdl b/userland-gate.kdl new file mode 100644 index 00000000000..a4bd6c821a5 --- /dev/null +++ b/userland-gate.kdl @@ -0,0 +1,5 @@ +name "userland" +version "0.5.11" +branch "2023.0.0" +publisher "openindiana.org" + From 0f5ea368104aa8ce8f013373b9dda7ff77483b90 Mon Sep 17 00:00:00 2001 From: Till Wegmueller Date: Wed, 27 Sep 2023 23:55:02 +0300 Subject: [PATCH 02/24] Fixup repology make rules Signed-off-by: Till Wegmueller --- make-rules/repology.mk | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/make-rules/repology.mk b/make-rules/repology.mk index 6e3dd6f5c55..1e0ccfae6c1 100644 --- a/make-rules/repology.mk +++ b/make-rules/repology.mk @@ -10,14 +10,14 @@ # # -# Copyright 2018 Adam Stevko +# Copyright 2023 Till Wegmueller # -PORTS="~/.cargo/target/debug/ports" +PKGDEV="/ws/toasty/.cargo/bin/pkgdev" generate-pakage-kdl: @echo "generating package.kdl for $(COMPONENT_NAME)" - $(PORTS) create $(COMPONENT_NAME) + $(PKGDEV) create $(COMPONENT_NAME) # @for package in $(REQUIRED_PACKAGES) ; do \ # echo $$package ; \ # done | LANG=C LC_ALL=C sort -u From 7f8bc9070e78b0e969aed19fb583f0631a6aac9e Mon Sep 17 00:00:00 2001 From: Till Wegmueller Date: Thu, 28 Sep 2023 21:17:10 +0200 Subject: [PATCH 03/24] Add more defintions to package defintions from Makefiles Signed-off-by: Till Wegmueller --- make-rules/repology.mk | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/make-rules/repology.mk b/make-rules/repology.mk index 1e0ccfae6c1..7777cddaf02 100644 --- a/make-rules/repology.mk +++ b/make-rules/repology.mk @@ -17,8 +17,16 @@ PKGDEV="/ws/toasty/.cargo/bin/pkgdev" generate-pakage-kdl: @echo "generating package.kdl for $(COMPONENT_NAME)" - $(PKGDEV) create $(COMPONENT_NAME) -# @for package in $(REQUIRED_PACKAGES) ; do \ -# echo $$package ; \ -# done | LANG=C LC_ALL=C sort -u + $(PKGDEV) create $(COMPONENT_FMRI) + @for package in $(REQUIRED_PACKAGES) ; do \ + $(PKGDEV) add dependency --dev --kind require $$package ; \ + done + $(PKGDEV) set project-name "$(COMPONENT_NAME)" + $(PKGDEV) set summary "$(COMPONENT_SUMMARY)" + $(PKGDEV) set classification "$(COMPONENT_CLASSIFICATION)" + $(PKGDEV) set license "$(COMPONENT_LICENSE)" "$(COMPONENT_LICENSE_FILE)" + $(PKGDEV) set version "$(COMPONENT_VERSION)" + $(PKGDEV) set project-url "$(COMPONENT_PROJECT_URL)" + $(PKGDEV) set maintainer "The OpenIndiana Maintainers" + $(PKGDEV) add source archive "$(COMPONENT_ARCHIVE_URL)" From e4fc19bc2129c3ae32ecb55488076e2b3fbeff16 Mon Sep 17 00:00:00 2001 From: Till Wegmueller Date: Thu, 28 Sep 2023 21:22:14 +0200 Subject: [PATCH 04/24] Fix commands start with edit Signed-off-by: Till Wegmueller --- make-rules/repology.mk | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/make-rules/repology.mk b/make-rules/repology.mk index 7777cddaf02..170b7c9e1e2 100644 --- a/make-rules/repology.mk +++ b/make-rules/repology.mk @@ -19,14 +19,14 @@ generate-pakage-kdl: @echo "generating package.kdl for $(COMPONENT_NAME)" $(PKGDEV) create $(COMPONENT_FMRI) @for package in $(REQUIRED_PACKAGES) ; do \ - $(PKGDEV) add dependency --dev --kind require $$package ; \ + $(PKGDEV) edit add dependency --dev --kind require $$package ; \ done - $(PKGDEV) set project-name "$(COMPONENT_NAME)" - $(PKGDEV) set summary "$(COMPONENT_SUMMARY)" - $(PKGDEV) set classification "$(COMPONENT_CLASSIFICATION)" - $(PKGDEV) set license "$(COMPONENT_LICENSE)" "$(COMPONENT_LICENSE_FILE)" - $(PKGDEV) set version "$(COMPONENT_VERSION)" - $(PKGDEV) set project-url "$(COMPONENT_PROJECT_URL)" - $(PKGDEV) set maintainer "The OpenIndiana Maintainers" - $(PKGDEV) add source archive "$(COMPONENT_ARCHIVE_URL)" + $(PKGDEV) edit set project-name "$(COMPONENT_NAME)" + $(PKGDEV) edit set summary "$(COMPONENT_SUMMARY)" + $(PKGDEV) edit set classification "$(COMPONENT_CLASSIFICATION)" + $(PKGDEV) edit set license "$(COMPONENT_LICENSE)" "$(COMPONENT_LICENSE_FILE)" + $(PKGDEV) edit set version "$(COMPONENT_VERSION)" + $(PKGDEV) edit set project-url "$(COMPONENT_PROJECT_URL)" + $(PKGDEV) edit set maintainer "The OpenIndiana Maintainers" + $(PKGDEV) edit add source archive "$(COMPONENT_ARCHIVE_URL)" From 3698397445b96d2e689b6935993cd1788b90e219 Mon Sep 17 00:00:00 2001 From: Till Wegmueller Date: Thu, 28 Sep 2023 21:23:45 +0200 Subject: [PATCH 05/24] Fixup add dependency command Signed-off-by: Till Wegmueller --- make-rules/repology.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/make-rules/repology.mk b/make-rules/repology.mk index 170b7c9e1e2..71095a50b12 100644 --- a/make-rules/repology.mk +++ b/make-rules/repology.mk @@ -19,7 +19,7 @@ generate-pakage-kdl: @echo "generating package.kdl for $(COMPONENT_NAME)" $(PKGDEV) create $(COMPONENT_FMRI) @for package in $(REQUIRED_PACKAGES) ; do \ - $(PKGDEV) edit add dependency --dev --kind require $$package ; \ + $(PKGDEV) edit add dependency --dev true --kind require $$package ; \ done $(PKGDEV) edit set project-name "$(COMPONENT_NAME)" $(PKGDEV) edit set summary "$(COMPONENT_SUMMARY)" From 4caca6be1acdbb18ba6e6a44c68105c5c8f6b47a Mon Sep 17 00:00:00 2001 From: Till Wegmueller Date: Thu, 28 Sep 2023 21:26:48 +0200 Subject: [PATCH 06/24] Fix add dependency command Signed-off-by: Till Wegmueller --- make-rules/repology.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/make-rules/repology.mk b/make-rules/repology.mk index 71095a50b12..26754b06b68 100644 --- a/make-rules/repology.mk +++ b/make-rules/repology.mk @@ -19,7 +19,7 @@ generate-pakage-kdl: @echo "generating package.kdl for $(COMPONENT_NAME)" $(PKGDEV) create $(COMPONENT_FMRI) @for package in $(REQUIRED_PACKAGES) ; do \ - $(PKGDEV) edit add dependency --dev true --kind require $$package ; \ + $(PKGDEV) edit add dependency -- --dev true --kind require $$package ; \ done $(PKGDEV) edit set project-name "$(COMPONENT_NAME)" $(PKGDEV) edit set summary "$(COMPONENT_SUMMARY)" From efa4e0920d78dd0400576a7aa708daee3d195aad Mon Sep 17 00:00:00 2001 From: Till Wegmueller Date: Thu, 28 Sep 2023 22:58:09 +0300 Subject: [PATCH 07/24] Fix commands Signed-off-by: Till Wegmueller --- make-rules/repology.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/make-rules/repology.mk b/make-rules/repology.mk index 26754b06b68..ab572e84795 100644 --- a/make-rules/repology.mk +++ b/make-rules/repology.mk @@ -19,12 +19,12 @@ generate-pakage-kdl: @echo "generating package.kdl for $(COMPONENT_NAME)" $(PKGDEV) create $(COMPONENT_FMRI) @for package in $(REQUIRED_PACKAGES) ; do \ - $(PKGDEV) edit add dependency -- --dev true --kind require $$package ; \ + $(PKGDEV) edit add dependency -- --dev --kind require $$package ; \ done $(PKGDEV) edit set project-name "$(COMPONENT_NAME)" $(PKGDEV) edit set summary "$(COMPONENT_SUMMARY)" $(PKGDEV) edit set classification "$(COMPONENT_CLASSIFICATION)" - $(PKGDEV) edit set license "$(COMPONENT_LICENSE)" "$(COMPONENT_LICENSE_FILE)" + $(PKGDEV) edit set license -- "$(COMPONENT_LICENSE)" -f "$(COMPONENT_LICENSE_FILE)" $(PKGDEV) edit set version "$(COMPONENT_VERSION)" $(PKGDEV) edit set project-url "$(COMPONENT_PROJECT_URL)" $(PKGDEV) edit set maintainer "The OpenIndiana Maintainers" From 7ce520d0bb3fc67440692ffa97172975214f8915 Mon Sep 17 00:00:00 2001 From: Till Wegmueller Date: Thu, 28 Sep 2023 23:36:20 +0200 Subject: [PATCH 08/24] Add patches command Signed-off-by: Till Wegmueller --- make-rules/repology.mk | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/make-rules/repology.mk b/make-rules/repology.mk index ab572e84795..357413954f2 100644 --- a/make-rules/repology.mk +++ b/make-rules/repology.mk @@ -28,5 +28,6 @@ generate-pakage-kdl: $(PKGDEV) edit set version "$(COMPONENT_VERSION)" $(PKGDEV) edit set project-url "$(COMPONENT_PROJECT_URL)" $(PKGDEV) edit set maintainer "The OpenIndiana Maintainers" - $(PKGDEV) edit add source archive "$(COMPONENT_ARCHIVE_URL)" + $(PKGDEV) edit add source archive "$(COMPONENT_ARCHIVE_URL)" "$(COMPONENT_ARCHIVE_HASH)" + if [ -d "patches" ]; then $(PKGDEV) edit add source patch patches From be3db49d86ff7abd6e4653b3f1e768638e7d3d75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Till=20Wegm=C3=BCller?= Date: Sat, 30 Sep 2023 00:31:37 +0200 Subject: [PATCH 09/24] Add defining of build options and flags MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Till Wegmüller --- make-rules/repology.mk | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/make-rules/repology.mk b/make-rules/repology.mk index 357413954f2..a30937781d9 100644 --- a/make-rules/repology.mk +++ b/make-rules/repology.mk @@ -30,4 +30,6 @@ generate-pakage-kdl: $(PKGDEV) edit set maintainer "The OpenIndiana Maintainers" $(PKGDEV) edit add source archive "$(COMPONENT_ARCHIVE_URL)" "$(COMPONENT_ARCHIVE_HASH)" if [ -d "patches" ]; then $(PKGDEV) edit add source patch patches - +ifdef CONFIGURE_OPTIONS + $(PKGDEV) edit add build configure -- --options="$(CONFIGURE_OPTIONS)" --flags="$(CONFIGURE_ENV)" +endif From 5a2d3311e37ec55a642bd82558d8af6c1d60af2f Mon Sep 17 00:00:00 2001 From: Till Wegmueller Date: Sat, 30 Sep 2023 01:36:34 +0300 Subject: [PATCH 10/24] Fix if statement Signed-off-by: Till Wegmueller --- make-rules/repology.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/make-rules/repology.mk b/make-rules/repology.mk index a30937781d9..ee075dcb58f 100644 --- a/make-rules/repology.mk +++ b/make-rules/repology.mk @@ -29,7 +29,7 @@ generate-pakage-kdl: $(PKGDEV) edit set project-url "$(COMPONENT_PROJECT_URL)" $(PKGDEV) edit set maintainer "The OpenIndiana Maintainers" $(PKGDEV) edit add source archive "$(COMPONENT_ARCHIVE_URL)" "$(COMPONENT_ARCHIVE_HASH)" - if [ -d "patches" ]; then $(PKGDEV) edit add source patch patches + if [ -d "patches" ]; then $(PKGDEV) edit add source patch patches; fi ifdef CONFIGURE_OPTIONS $(PKGDEV) edit add build configure -- --options="$(CONFIGURE_OPTIONS)" --flags="$(CONFIGURE_ENV)" endif From a9d8d8f059bd608b3a1794b8be4ee1dd9a638433 Mon Sep 17 00:00:00 2001 From: Till Wegmueller Date: Sat, 30 Sep 2023 01:42:39 +0300 Subject: [PATCH 11/24] Better shell excaping Signed-off-by: Till Wegmueller --- make-rules/repology.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/make-rules/repology.mk b/make-rules/repology.mk index ee075dcb58f..079b8594117 100644 --- a/make-rules/repology.mk +++ b/make-rules/repology.mk @@ -31,5 +31,5 @@ generate-pakage-kdl: $(PKGDEV) edit add source archive "$(COMPONENT_ARCHIVE_URL)" "$(COMPONENT_ARCHIVE_HASH)" if [ -d "patches" ]; then $(PKGDEV) edit add source patch patches; fi ifdef CONFIGURE_OPTIONS - $(PKGDEV) edit add build configure -- --options="$(CONFIGURE_OPTIONS)" --flags="$(CONFIGURE_ENV)" + $(PKGDEV) edit add build configure -- --options='$(CONFIGURE_OPTIONS)' --flags='$(CONFIGURE_ENV)' endif From 9aacbc01d5d2798c6d9dbb1545099ea7d5ace74b Mon Sep 17 00:00:00 2001 From: Till Wegmueller Date: Tue, 3 Oct 2023 15:23:56 +0300 Subject: [PATCH 12/24] Updating for loop for better option capture Signed-off-by: Till Wegmueller --- make-rules/repology.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/make-rules/repology.mk b/make-rules/repology.mk index 079b8594117..4f81b07983b 100644 --- a/make-rules/repology.mk +++ b/make-rules/repology.mk @@ -30,6 +30,6 @@ generate-pakage-kdl: $(PKGDEV) edit set maintainer "The OpenIndiana Maintainers" $(PKGDEV) edit add source archive "$(COMPONENT_ARCHIVE_URL)" "$(COMPONENT_ARCHIVE_HASH)" if [ -d "patches" ]; then $(PKGDEV) edit add source patch patches; fi -ifdef CONFIGURE_OPTIONS - $(PKGDEV) edit add build configure -- --options='$(CONFIGURE_OPTIONS)' --flags='$(CONFIGURE_ENV)' +ifeq ($(strip $(BUILD_STYLE)),configure) + $(PKGDEV) edit add build configure -- $(foreach var, $(CONFIGURE_OPTIONS), --arg='$(var)') endif From c52ba1237f56dfefbe5e60b774ee5966edbcabc4 Mon Sep 17 00:00:00 2001 From: Till Wegmueller Date: Tue, 2 Sep 2025 17:40:42 +0200 Subject: [PATCH 13/24] Replace `repology.mk` with `forge.mk` for improved maintainability Signed-off-by: Till Wegmueller --- make-rules/common.mk | 2 +- make-rules/{repology.mk => forge.mk} | 18 ++++++++++++------ 2 files changed, 13 insertions(+), 7 deletions(-) rename make-rules/{repology.mk => forge.mk} (71%) diff --git a/make-rules/common.mk b/make-rules/common.mk index a6f659d3ebd..6756361d241 100644 --- a/make-rules/common.mk +++ b/make-rules/common.mk @@ -241,4 +241,4 @@ COMPONENT_BUILD_GMAKE_ARGS += -j$(PARALLEL_JOBS) COMPONENT_BUILD_SETUP_PY_ARGS += -j$(PARALLEL_JOBS) endif -include $(WS_MAKE_RULES)/repology.mk +include $(WS_MAKE_RULES)/forge.mk diff --git a/make-rules/repology.mk b/make-rules/forge.mk similarity index 71% rename from make-rules/repology.mk rename to make-rules/forge.mk index 4f81b07983b..7ee2aa00c0a 100644 --- a/make-rules/repology.mk +++ b/make-rules/forge.mk @@ -8,18 +8,24 @@ # source. A copy of the CDDL is also available via the Internet at # http://www.illumos.org/license/CDDL. # - # # Copyright 2023 Till Wegmueller # -PKGDEV="/ws/toasty/.cargo/bin/pkgdev" +# Allow overriding via environment and default to relying on PATH +PKGDEV ?= pkgdev + +.PHONY: generate-package-kdl generate-pakage-kdl + +# Backward compatibility for the old misspelled target name +generate-pakage-kdl: generate-package-kdl -generate-pakage-kdl: +# Generate package.kdl using pkgdev with component metadata +generate-package-kdl: @echo "generating package.kdl for $(COMPONENT_NAME)" $(PKGDEV) create $(COMPONENT_FMRI) @for package in $(REQUIRED_PACKAGES) ; do \ - $(PKGDEV) edit add dependency -- --dev --kind require $$package ; \ + $(PKGDEV) edit add dependency -- --dev --kind require $$package ; \ done $(PKGDEV) edit set project-name "$(COMPONENT_NAME)" $(PKGDEV) edit set summary "$(COMPONENT_SUMMARY)" @@ -29,7 +35,7 @@ generate-pakage-kdl: $(PKGDEV) edit set project-url "$(COMPONENT_PROJECT_URL)" $(PKGDEV) edit set maintainer "The OpenIndiana Maintainers" $(PKGDEV) edit add source archive "$(COMPONENT_ARCHIVE_URL)" "$(COMPONENT_ARCHIVE_HASH)" - if [ -d "patches" ]; then $(PKGDEV) edit add source patch patches; fi + @if [ -d "patches" ]; then $(PKGDEV) edit add source patch patches; fi ifeq ($(strip $(BUILD_STYLE)),configure) - $(PKGDEV) edit add build configure -- $(foreach var, $(CONFIGURE_OPTIONS), --arg='$(var)') + $(PKGDEV) edit add build configure -- $(foreach var,$(CONFIGURE_OPTIONS),--arg="$(var)") endif From 76b8b70c6620fa92e576d11c255f6263e9d602f2 Mon Sep 17 00:00:00 2001 From: Till Wegmueller Date: Tue, 2 Sep 2025 18:26:13 +0200 Subject: [PATCH 14/24] Remove backward compatibility for misspelled target in `forge.mk` Signed-off-by: Till Wegmueller --- make-rules/forge.mk | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/make-rules/forge.mk b/make-rules/forge.mk index 7ee2aa00c0a..65104f1aa62 100644 --- a/make-rules/forge.mk +++ b/make-rules/forge.mk @@ -15,10 +15,7 @@ # Allow overriding via environment and default to relying on PATH PKGDEV ?= pkgdev -.PHONY: generate-package-kdl generate-pakage-kdl - -# Backward compatibility for the old misspelled target name -generate-pakage-kdl: generate-package-kdl +.PHONY: generate-package-kdl # Generate package.kdl using pkgdev with component metadata generate-package-kdl: From 012c09d98699b746049239919d5e8c01486fd6ef Mon Sep 17 00:00:00 2001 From: Till Wegmueller Date: Tue, 2 Sep 2025 19:11:12 +0200 Subject: [PATCH 15/24] Ensure Cargo-installed tools are included in PATH in `forge.mk` --- make-rules/forge.mk | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/make-rules/forge.mk b/make-rules/forge.mk index 65104f1aa62..6bffe9b51e4 100644 --- a/make-rules/forge.mk +++ b/make-rules/forge.mk @@ -15,6 +15,10 @@ # Allow overriding via environment and default to relying on PATH PKGDEV ?= pkgdev +# Ensure Cargo-installed tools (e.g., pkgdev) are on PATH +PATH := $(PATH):$(HOME)/.cargo/bin +export PATH + .PHONY: generate-package-kdl # Generate package.kdl using pkgdev with component metadata From 361363939b1a970d40247394d6f32c3f72197854 Mon Sep 17 00:00:00 2001 From: Till Wegmueller Date: Tue, 2 Sep 2025 19:13:22 +0200 Subject: [PATCH 16/24] Remove redundant flag in `add dependency` command --- make-rules/forge.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/make-rules/forge.mk b/make-rules/forge.mk index 6bffe9b51e4..b57f5ecf70d 100644 --- a/make-rules/forge.mk +++ b/make-rules/forge.mk @@ -26,7 +26,7 @@ generate-package-kdl: @echo "generating package.kdl for $(COMPONENT_NAME)" $(PKGDEV) create $(COMPONENT_FMRI) @for package in $(REQUIRED_PACKAGES) ; do \ - $(PKGDEV) edit add dependency -- --dev --kind require $$package ; \ + $(PKGDEV) edit add dependency --dev --kind require $$package ; \ done $(PKGDEV) edit set project-name "$(COMPONENT_NAME)" $(PKGDEV) edit set summary "$(COMPONENT_SUMMARY)" From 60868a74ec9019a53038f142f7fd9651e266df62 Mon Sep 17 00:00:00 2001 From: Till Wegmueller Date: Tue, 2 Sep 2025 19:14:04 +0200 Subject: [PATCH 17/24] Remove redundant `--` flag in license command in `forge.mk` --- make-rules/forge.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/make-rules/forge.mk b/make-rules/forge.mk index b57f5ecf70d..62432932837 100644 --- a/make-rules/forge.mk +++ b/make-rules/forge.mk @@ -31,7 +31,7 @@ generate-package-kdl: $(PKGDEV) edit set project-name "$(COMPONENT_NAME)" $(PKGDEV) edit set summary "$(COMPONENT_SUMMARY)" $(PKGDEV) edit set classification "$(COMPONENT_CLASSIFICATION)" - $(PKGDEV) edit set license -- "$(COMPONENT_LICENSE)" -f "$(COMPONENT_LICENSE_FILE)" + $(PKGDEV) edit set license "$(COMPONENT_LICENSE)" -f "$(COMPONENT_LICENSE_FILE)" $(PKGDEV) edit set version "$(COMPONENT_VERSION)" $(PKGDEV) edit set project-url "$(COMPONENT_PROJECT_URL)" $(PKGDEV) edit set maintainer "The OpenIndiana Maintainers" From c520c9e80324f2dc4704968adb74e982ed114666 Mon Sep 17 00:00:00 2001 From: Till Wegmueller Date: Tue, 2 Sep 2025 19:15:21 +0200 Subject: [PATCH 18/24] Remove redundant maintainer command in `forge.mk` --- make-rules/forge.mk | 1 - 1 file changed, 1 deletion(-) diff --git a/make-rules/forge.mk b/make-rules/forge.mk index 62432932837..f3256f6043a 100644 --- a/make-rules/forge.mk +++ b/make-rules/forge.mk @@ -34,7 +34,6 @@ generate-package-kdl: $(PKGDEV) edit set license "$(COMPONENT_LICENSE)" -f "$(COMPONENT_LICENSE_FILE)" $(PKGDEV) edit set version "$(COMPONENT_VERSION)" $(PKGDEV) edit set project-url "$(COMPONENT_PROJECT_URL)" - $(PKGDEV) edit set maintainer "The OpenIndiana Maintainers" $(PKGDEV) edit add source archive "$(COMPONENT_ARCHIVE_URL)" "$(COMPONENT_ARCHIVE_HASH)" @if [ -d "patches" ]; then $(PKGDEV) edit add source patch patches; fi ifeq ($(strip $(BUILD_STYLE)),configure) From 8e04bce741fdec8ea87be94033ae652565e9ebf2 Mon Sep 17 00:00:00 2001 From: Till Wegmueller Date: Tue, 2 Sep 2025 19:17:07 +0200 Subject: [PATCH 19/24] Remove redundant maintainer command in `forge.mk` --- make-rules/forge.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/make-rules/forge.mk b/make-rules/forge.mk index f3256f6043a..18d3aac3fb4 100644 --- a/make-rules/forge.mk +++ b/make-rules/forge.mk @@ -37,5 +37,5 @@ generate-package-kdl: $(PKGDEV) edit add source archive "$(COMPONENT_ARCHIVE_URL)" "$(COMPONENT_ARCHIVE_HASH)" @if [ -d "patches" ]; then $(PKGDEV) edit add source patch patches; fi ifeq ($(strip $(BUILD_STYLE)),configure) - $(PKGDEV) edit add build configure -- $(foreach var,$(CONFIGURE_OPTIONS),--arg="$(var)") + $(PKGDEV) edit add build configure $(foreach var,$(CONFIGURE_OPTIONS),--arg="$(var)") endif From 8996eec25222b2bbc73c942dd8c7482761187d47 Mon Sep 17 00:00:00 2001 From: Till Wegmueller Date: Tue, 2 Sep 2025 19:28:25 +0200 Subject: [PATCH 20/24] Fix quoting for configure options in `forge.mk` --- make-rules/forge.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/make-rules/forge.mk b/make-rules/forge.mk index 18d3aac3fb4..e1c3602fd54 100644 --- a/make-rules/forge.mk +++ b/make-rules/forge.mk @@ -37,5 +37,5 @@ generate-package-kdl: $(PKGDEV) edit add source archive "$(COMPONENT_ARCHIVE_URL)" "$(COMPONENT_ARCHIVE_HASH)" @if [ -d "patches" ]; then $(PKGDEV) edit add source patch patches; fi ifeq ($(strip $(BUILD_STYLE)),configure) - $(PKGDEV) edit add build configure $(foreach var,$(CONFIGURE_OPTIONS),--arg="$(var)") + $(PKGDEV) edit add build configure $(foreach var,$(CONFIGURE_OPTIONS),"$(var)") endif From b855721fb3346d3a2666af6743fbe4560807e3c8 Mon Sep 17 00:00:00 2001 From: Till Wegmueller Date: Tue, 2 Sep 2025 20:17:19 +0200 Subject: [PATCH 21/24] Update `userland-gate.kdl` to 2025 branch and refine metadata transformations --- userland-gate.kdl | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/userland-gate.kdl b/userland-gate.kdl index a4bd6c821a5..a09fdce159f 100644 --- a/userland-gate.kdl +++ b/userland-gate.kdl @@ -1,5 +1,19 @@ name "userland" version "0.5.11" -branch "2023.0.0" +branch "2025.0.0" publisher "openindiana.org" +metadata-transform matcher="--libexecdir" replacement="--libexecdir=${LIBEXECDIR}" +metadata-transform matcher="--bindir" replacement="--bindir=${BINDIR}" +metadata-transform matcher="--sbindir" replacement="--sbindir=${SBINDIR}" +metadata-transform matcher="--mandir" replacement="--mandir=${MANDIR}" +metadata-transform matcher="--libdir" replacement="--libdir=${LIBDIR}" +metadata-transform matcher="--with-jobs" drop=true +metadata-transform matcher="CC" drop=true +metadata-transform matcher="CXX" drop=true +metadata-transform matcher="F77" drop=true +metadata-transform matcher="FC" drop=true +metadata-transform matcher="FFLAGS" drop=true +metadata-transform matcher="CFLAGS" drop=true +metadata-transform matcher="LDFLAGS" drop=true +metadata-transform matcher="PKG_CONFIG_PATH" drop=true \ No newline at end of file From a80fccf588393cb87b9780cdd39921188d837a5c Mon Sep 17 00:00:00 2001 From: Till Wegmueller Date: Tue, 2 Sep 2025 20:23:25 +0200 Subject: [PATCH 22/24] Add `--gate` flag for configure builds in `forge.mk` --- make-rules/forge.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/make-rules/forge.mk b/make-rules/forge.mk index e1c3602fd54..05d72b23d6a 100644 --- a/make-rules/forge.mk +++ b/make-rules/forge.mk @@ -37,5 +37,5 @@ generate-package-kdl: $(PKGDEV) edit add source archive "$(COMPONENT_ARCHIVE_URL)" "$(COMPONENT_ARCHIVE_HASH)" @if [ -d "patches" ]; then $(PKGDEV) edit add source patch patches; fi ifeq ($(strip $(BUILD_STYLE)),configure) - $(PKGDEV) edit add build configure $(foreach var,$(CONFIGURE_OPTIONS),"$(var)") + $(PKGDEV) edit add build --gate $(WS_TOP)/userland-gate.kdl configure $(foreach var,$(CONFIGURE_OPTIONS),"$(var)") endif From 4c1e2bdbfce1db263083d86b548ae2e55b5d0715 Mon Sep 17 00:00:00 2001 From: Till Wegmueller Date: Fri, 3 Oct 2025 22:22:59 +0300 Subject: [PATCH 23/24] Improve forge.mk error handling --- make-rules/forge.mk | 55 ++++++++++++++++++++++++++++++++------------- 1 file changed, 39 insertions(+), 16 deletions(-) diff --git a/make-rules/forge.mk b/make-rules/forge.mk index 05d72b23d6a..36b0854affe 100644 --- a/make-rules/forge.mk +++ b/make-rules/forge.mk @@ -23,19 +23,42 @@ export PATH # Generate package.kdl using pkgdev with component metadata generate-package-kdl: - @echo "generating package.kdl for $(COMPONENT_NAME)" - $(PKGDEV) create $(COMPONENT_FMRI) - @for package in $(REQUIRED_PACKAGES) ; do \ - $(PKGDEV) edit add dependency --dev --kind require $$package ; \ - done - $(PKGDEV) edit set project-name "$(COMPONENT_NAME)" - $(PKGDEV) edit set summary "$(COMPONENT_SUMMARY)" - $(PKGDEV) edit set classification "$(COMPONENT_CLASSIFICATION)" - $(PKGDEV) edit set license "$(COMPONENT_LICENSE)" -f "$(COMPONENT_LICENSE_FILE)" - $(PKGDEV) edit set version "$(COMPONENT_VERSION)" - $(PKGDEV) edit set project-url "$(COMPONENT_PROJECT_URL)" - $(PKGDEV) edit add source archive "$(COMPONENT_ARCHIVE_URL)" "$(COMPONENT_ARCHIVE_HASH)" - @if [ -d "patches" ]; then $(PKGDEV) edit add source patch patches; fi -ifeq ($(strip $(BUILD_STYLE)),configure) - $(PKGDEV) edit add build --gate $(WS_TOP)/userland-gate.kdl configure $(foreach var,$(CONFIGURE_OPTIONS),"$(var)") -endif + @compname="$(COMPONENT_NAME)"; \ + [ -z "$$compname" ] && compname="$$(/usr/bin/basename "$$PWD")"; \ + if [ -f "package.kdl" ]; then \ + echo "Skipping package.kdl generation for $$compname: package.kdl already exists"; \ + exit 0; \ + fi; \ + missing=""; \ + [ -z "$(COMPONENT_NAME)" ] && missing="$$missing COMPONENT_NAME"; \ + [ -z "$(COMPONENT_FMRI)" ] && missing="$$missing COMPONENT_FMRI"; \ + [ -z "$(COMPONENT_SUMMARY)" ] && missing="$$missing COMPONENT_SUMMARY"; \ + [ -z "$(COMPONENT_CLASSIFICATION)" ] && missing="$$missing COMPONENT_CLASSIFICATION"; \ + [ -z "$(COMPONENT_LICENSE)" ] && missing="$$missing COMPONENT_LICENSE"; \ + [ -z "$(COMPONENT_LICENSE_FILE)" ] && missing="$$missing COMPONENT_LICENSE_FILE"; \ + [ -z "$(COMPONENT_VERSION)" ] && missing="$$missing COMPONENT_VERSION"; \ + [ -z "$(COMPONENT_PROJECT_URL)" ] && missing="$$missing COMPONENT_PROJECT_URL"; \ + [ -z "$(COMPONENT_ARCHIVE_URL)" ] && missing="$$missing COMPONENT_ARCHIVE_URL"; \ + [ -z "$(COMPONENT_ARCHIVE_HASH)" ] && missing="$$missing COMPONENT_ARCHIVE_HASH"; \ + if [ -n "$$missing" ]; then \ + echo "Skipping package.kdl generation for $$compname: missing variables:$$missing"; \ + if [ -n "$(WS_TOP)" ]; then echo "$$compname" >> "$(WS_TOP)/components.missing-metadata"; fi; \ + exit 0; \ + else \ + echo "generating package.kdl for $$compname"; \ + $(PKGDEV) create $(COMPONENT_FMRI); \ + for package in $(REQUIRED_PACKAGES) ; do \ + $(PKGDEV) edit add dependency --dev --kind require $$package ; \ + done; \ + $(PKGDEV) edit set project-name "$(COMPONENT_NAME)"; \ + $(PKGDEV) edit set summary "$(COMPONENT_SUMMARY)"; \ + $(PKGDEV) edit set classification "$(COMPONENT_CLASSIFICATION)"; \ + $(PKGDEV) edit set license "$(COMPONENT_LICENSE)" -f "$(COMPONENT_LICENSE_FILE)"; \ + $(PKGDEV) edit set version "$(COMPONENT_VERSION)"; \ + $(PKGDEV) edit set project-url "$(COMPONENT_PROJECT_URL)"; \ + $(PKGDEV) edit add source archive "$(COMPONENT_ARCHIVE_URL)" "$(COMPONENT_ARCHIVE_HASH)"; \ + if [ -d "patches" ]; then $(PKGDEV) edit add source patch patches; fi; \ + if [ "$(strip $(BUILD_STYLE))" = "configure" ]; then \ + $(PKGDEV) edit add build --gate $(WS_TOP)/userland-gate.kdl configure $(foreach var,$(CONFIGURE_OPTIONS),"$(var)"); \ + fi; \ + fi From 3bcbb54a949737a9caf30a257da0f06876bcc2be Mon Sep 17 00:00:00 2001 From: Till Wegmueller Date: Fri, 3 Oct 2025 22:38:51 +0300 Subject: [PATCH 24/24] Add Supporting targets to global makefiles Signed-off-by: Till Wegmueller --- Makefile | 28 ++++++++++++++++++++++++++-- components/Makefile | 3 +++ 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index e6beebbbb73..3e82325d378 100644 --- a/Makefile +++ b/Makefile @@ -37,13 +37,37 @@ clobber: TARGET = clobber setup: TARGET = setup test: TARGET = test component-hook: TARGET = component-hook +generate-package-kdl: TARGET = generate-package-kdl .DEFAULT: publish -download setup prep build install pre-publish publish validate clean clobber \ -test component-hook unpack patch: $(SUBDIRS) +download prep build install pre-publish publish validate clean clobber test component-hook generate-package-kdl unpack patch: $(SUBDIRS) $(SUBDIRS): FORCE @+echo "$(TARGET) $@" ; $(GMAKE) -s -C $@ $(TARGET) FORCE: + +# Bootstrap pkgdev before running component setup +setup: bootstrap-pkgdev $(SUBDIRS) + +bootstrap-pkgdev: + @echo "Bootstrapping pkgdev via cargo from toasterson/forge" + cargo install --git https://github.com/toasterson/forge pkgdev + +update-pkgdev: + @echo "Updating pkgdev via cargo from toasterson/forge" + cargo install --git https://github.com/toasterson/forge pkgdev --force + +# Generate repology metadata using pkgdev +.PHONY: repology +repology: bootstrap-pkgdev + @echo "Generating repology metadata with pkgdev" + pkgdev generate --output=repology-metadata.json repology + +# Clean generated package.kdl files and missing-metadata list +.PHONY: clean-package-kdl +clean-package-kdl: + @echo "Cleaning generated package.kdl files and components.missing-metadata" + @/usr/bin/find components -type f -name package.kdl -exec rm -f {} + + @rm -f $(WS_TOP)/components.missing-metadata components.missing-metadata diff --git a/components/Makefile b/components/Makefile index 06af460559b..bbe00840f37 100644 --- a/components/Makefile +++ b/components/Makefile @@ -73,6 +73,7 @@ publish-branch: download: TARGET = download update-metadata: TARGET = update-metadata +generate-package-kdl: TARGET = generate-package-kdl prep: TARGET = prep build: TARGET = build install: TARGET = install @@ -102,6 +103,8 @@ download prep: $(COMPONENT_DIRS.nosetup) update-metadata: $(COMPONENT_DIRS.nolog) +generate-package-kdl: $(COMPONENT_DIRS.nolog) + component-hook: $(COMPONENT_DIRS.nosetup) clean: $(COMPONENT_DIRS.nosetup)