From a06761782c51691d69faeba5932816509497c792 Mon Sep 17 00:00:00 2001 From: Jacob Floyd Date: Fri, 20 Dec 2024 15:37:47 -0600 Subject: [PATCH 1/5] Packaging: add rpm/deb package metadata --- packaging/BUILD | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 packaging/BUILD diff --git a/packaging/BUILD b/packaging/BUILD new file mode 100644 index 0000000000..3c54b622e4 --- /dev/null +++ b/packaging/BUILD @@ -0,0 +1,47 @@ +# Relevant nFPM docs: +# - https://www.pantsbuild.org/stable/reference/targets/nfpm_deb_package +# - https://www.pantsbuild.org/stable/reference/targets/nfpm_rpm_package +# - arch: https://nfpm.goreleaser.com/goarch-to-pkg/ + +_pkg_description = """ +StackStorm Event-driven automation +Package is full standalone st2 installation including all components +in a pre-built venv. +""" +_common_pkg_metadata = dict( + package_name="st2", + description=_pkg_description, + homepage="https://stackstorm.com", + # https://jfearn.fedorapeople.org/en-US/RPM/4/html-single/RPM_Guide/index.html#idp3030720 + license="Apache-2.0", # TODO: nFPM is putting this under Copyright tag instead of License + version="", # injected by pants-plugins/release + # arch used to be "any", but that was not correct as the venv has compiled packages. + arch="amd64", # NOTE: parametrize this if adding support for arm64 or other arch. + platform="linux", +) +_maintainer = "StackStorm Engineering " # TODO: update this + +nfpm_deb_package( + name="st2.deb", + maintainer=_maintainer, + fields={ + # https://www.debian.org/doc/debian-policy/ch-controlfields.html#source + # We do not have an "st2" source package, so do not include "Source". + # https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-vcs-fields + "Vcs-Git": "git://github.com/stackstorm/st2.git", + "Vcs-Browser": "https://github.com/stackstorm/st2", + }, + section="python", + priority="optional", + **_common_pkg_metadata, +) + +nfpm_rpm_package( + name="st2.rpm", + vendor="The StackStorm Project", + packager=_maintainer, + # group="System/Management", # was only useful for EL 5 and earlier + compression="zstd:default", # EL 9 + # compression="xz", # EL 8 + **_common_pkg_metadata, +) From 02ea550ec59d71b3e243ba3513d55a2ce22e225f Mon Sep 17 00:00:00 2001 From: Jacob Floyd Date: Mon, 13 Jan 2025 10:23:36 -0600 Subject: [PATCH 2/5] pants-plugins/release: add distro_id field to nfpm rpm/deb package targets This should also be included in the output_path and possibly other fields. --- packaging/BUILD | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packaging/BUILD b/packaging/BUILD index 3c54b622e4..99d366f10d 100644 --- a/packaging/BUILD +++ b/packaging/BUILD @@ -23,6 +23,7 @@ _maintainer = "StackStorm Engineering " # TODO: update nfpm_deb_package( name="st2.deb", + distro_id=parametrize("focal"), maintainer=_maintainer, fields={ # https://www.debian.org/doc/debian-policy/ch-controlfields.html#source @@ -38,6 +39,7 @@ nfpm_deb_package( nfpm_rpm_package( name="st2.rpm", + distro_id=parametrize("el8", "el9"), vendor="The StackStorm Project", packager=_maintainer, # group="System/Management", # was only useful for EL 5 and earlier From 403b3ce7031813e5200792420cf24e84683835b4 Mon Sep 17 00:00:00 2001 From: Jacob Floyd Date: Wed, 26 Mar 2025 18:52:11 -0500 Subject: [PATCH 3/5] pants: refactor rpm/deb package parametrization --- packaging/BUILD | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/packaging/BUILD b/packaging/BUILD index 99d366f10d..82373f8d90 100644 --- a/packaging/BUILD +++ b/packaging/BUILD @@ -21,9 +21,17 @@ _common_pkg_metadata = dict( ) _maintainer = "StackStorm Engineering " # TODO: update this + +def _distro(distro_id: str, **kwargs): + return parametrize( + distro_id, + distro_id=distro_id, + **kwargs, + ) + + nfpm_deb_package( name="st2.deb", - distro_id=parametrize("focal"), maintainer=_maintainer, fields={ # https://www.debian.org/doc/debian-policy/ch-controlfields.html#source @@ -35,15 +43,15 @@ nfpm_deb_package( section="python", priority="optional", **_common_pkg_metadata, + **_distro("focal"), ) nfpm_rpm_package( name="st2.rpm", - distro_id=parametrize("el8", "el9"), vendor="The StackStorm Project", packager=_maintainer, # group="System/Management", # was only useful for EL 5 and earlier - compression="zstd:default", # EL 9 - # compression="xz", # EL 8 **_common_pkg_metadata, + **_distro("el8", compression="xz"), + **_distro("el9", compression="zstd:default"), ) From b7a454040bfebce0675f324f38cf1926dd92ce22 Mon Sep 17 00:00:00 2001 From: Jacob Floyd Date: Fri, 20 Dec 2024 17:45:32 -0600 Subject: [PATCH 4/5] Packaging: Include deb maint scripts & rpm scriptlets --- packaging/BUILD | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/packaging/BUILD b/packaging/BUILD index 82373f8d90..a9b72c147e 100644 --- a/packaging/BUILD +++ b/packaging/BUILD @@ -32,6 +32,18 @@ def _distro(distro_id: str, **kwargs): nfpm_deb_package( name="st2.deb", + dependencies=[ + "./deb/scripts", + ], + scripts=dict( + preinstall="deb/scripts/pre-install.sh", + postinstall="deb/scripts/post-install.sh", + preremove="deb/scripts/pre-remove.sh", + postremove="deb/scripts/post-remove.sh", + # config="", + # templates="", + # rules="", + ), maintainer=_maintainer, fields={ # https://www.debian.org/doc/debian-policy/ch-controlfields.html#source @@ -48,6 +60,18 @@ nfpm_deb_package( nfpm_rpm_package( name="st2.rpm", + dependencies=[ + "./rpm/scripts", + ], + scripts=dict( + preinstall="rpm/scripts/pre-install.sh", + postinstall="rpm/scripts/post-install.sh", + preremove="rpm/scripts/pre-remove.sh", + postremove="rpm/scripts/post-remove.sh", + # pretrans="", + # posttrans="", + # verify="", + ), vendor="The StackStorm Project", packager=_maintainer, # group="System/Management", # was only useful for EL 5 and earlier From 2ef489bdd95c5c60b8d61adf0ae6ffb27d0bb13a Mon Sep 17 00:00:00 2001 From: Jacob Floyd Date: Thu, 27 Mar 2025 12:17:33 -0500 Subject: [PATCH 5/5] update changelog entry --- CHANGELOG.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 658d519ffb..e31208fb48 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -79,7 +79,7 @@ Added to pants' use of PEX lockfiles. This is not a user-facing addition. #6118 #6141 #6133 #6120 #6181 #6183 #6200 #6237 #6229 #6240 #6241 #6244 #6251 #6253 #6254 #6258 #6259 #6260 #6269 #6275 #6279 #6278 #6282 #6283 #6273 #6287 #6306 #6307 - #6311 #6314 #6315 #6317 #6319 #6312 #6320 #6321 #6323 #6324 + #6311 #6314 #6315 #6317 #6319 #6312 #6320 #6321 #6323 #6324 #6325 Contributed by @cognifloyd * Build of ST2 EL9 packages #6153 Contributed by @amanda11