Compare commits

...

3 Commits

Author SHA1 Message Date
Michal Pospisil 648cf7e8e8 pcs-0.11.6-6 2023-11-24 03:41:43 +00:00
Michal Pospisil 1a3ffa6e01 fix gem permissions
Prior to this fix, some gems were installed with write permissions for the
owner group and everyone. With this patch, write permissions are removed
with chmod for all rubygems.

Resolves: RHEL-7716
2023-11-10 18:56:32 +01:00
Michal Pospisil e2eed6c9b4 ignore failure when allowing repositories
Gating environment has a different repository configuration than
production builds. This causes dnf config manager to fail when enabling
high availability and crb repositories. These repositories are enabled
on the images used for testing, so the failure can be ignored.

Resolves: RHEL-15217
2023-11-02 15:39:04 +01:00
13 changed files with 149 additions and 1850 deletions

10
.gitignore vendored
View File

@ -207,3 +207,13 @@
/tilt-2.2.0.gem
/puma-6.3.0.gem
/pcs-0.11.6.tar.gz
/ffi-1.16.3.gem
/puma-6.4.0.gem
/rack-2.2.8.gem
/rack-protection-3.1.0.gem
/sinatra-3.1.0.gem
/tilt-2.3.0.gem
/pcs-aaa16e0de986890e6ca3038f907bbad331e41a87.tar.gz
/pcs-web-ui-0.1.18.tar.gz
/pcs-web-ui-node-modules-0.1.18.tar.xz
/tornado-6.3.3.tar.gz

2
.pcs.metadata Normal file
View File

@ -0,0 +1,2 @@
3176b2f2b332c2b6bf79fe882e83feecf3d3f011 pyagentx-0.4.pcs.2.tar.gz
d017b9e4d1978e0b3ccc3e2a31493809e4693cd3 ruby2_keywords-0.0.5.gem

File diff suppressed because it is too large Load Diff

View File

@ -1,302 +0,0 @@
From 24a8e84e3f81fc846a8d60dc636c9d42fc7a0cd8 Mon Sep 17 00:00:00 2001
From: Miroslav Lisik <mlisik@redhat.com>
Date: Tue, 4 Jul 2023 21:43:38 +0200
Subject: [PATCH 2/3] fix displaying duplicate records in property commands
---
pcs/cli/cluster_property/output.py | 65 +++++++++----------
.../cli/cluster_property/test_command.py | 15 +++++
.../tier0/cli/cluster_property/test_output.py | 31 ++++++---
.../lib/commands/test_cluster_property.py | 28 ++++++++
4 files changed, 93 insertions(+), 46 deletions(-)
diff --git a/pcs/cli/cluster_property/output.py b/pcs/cli/cluster_property/output.py
index c538c5c1..c9c46d1c 100644
--- a/pcs/cli/cluster_property/output.py
+++ b/pcs/cli/cluster_property/output.py
@@ -31,21 +31,15 @@ class PropertyConfigurationFacade:
readonly_properties: StringCollection,
) -> None:
self._properties = properties
+ self._first_nvpair_set = (
+ self._properties[0].nvpairs if self._properties else []
+ )
self._properties_metadata = properties_metadata
self._readonly_properties = readonly_properties
- self._defaults_map = {
- metadata.name: metadata.default
- for metadata in self._properties_metadata
- if metadata.default is not None
+ self._defaults_map = self.get_defaults(include_advanced=True)
+ self._name_nvpair_dto_map = {
+ nvpair_dto.name: nvpair_dto for nvpair_dto in self._first_nvpair_set
}
- self._name_nvpair_dto_map = (
- {
- nvpair_dto.name: nvpair_dto
- for nvpair_dto in self._properties[0].nvpairs
- }
- if self._properties
- else {}
- )
@classmethod
def from_properties_dtos(
@@ -105,17 +99,6 @@ class PropertyConfigurationFacade:
return value
return self._defaults_map.get(property_name, custom_default)
- @staticmethod
- def _filter_names_advanced(
- metadata: ResourceAgentParameterDto,
- property_names: Optional[StringSequence] = None,
- include_advanced: bool = False,
- ) -> bool:
- return bool(
- (not property_names and (include_advanced or not metadata.advanced))
- or (property_names and metadata.name in property_names)
- )
-
def get_defaults(
self,
property_names: Optional[StringSequence] = None,
@@ -123,11 +106,10 @@ class PropertyConfigurationFacade:
) -> dict[str, str]:
return {
metadata.name: metadata.default
- for metadata in self._properties_metadata
- if metadata.default is not None
- and self._filter_names_advanced(
- metadata, property_names, include_advanced
+ for metadata in self.get_properties_metadata(
+ property_names, include_advanced
)
+ if metadata.default is not None
}
def get_properties_metadata(
@@ -135,23 +117,34 @@ class PropertyConfigurationFacade:
property_names: Optional[StringSequence] = None,
include_advanced: bool = False,
) -> Sequence[ResourceAgentParameterDto]:
- return [
- metadata
- for metadata in self._properties_metadata
- if self._filter_names_advanced(
- metadata, property_names, include_advanced
- )
- ]
+ if property_names:
+ filtered_metadata = [
+ metadata
+ for metadata in self._properties_metadata
+ if metadata.name in property_names
+ ]
+ else:
+ filtered_metadata = [
+ metadata
+ for metadata in self._properties_metadata
+ if include_advanced or not metadata.advanced
+ ]
+ deduplicated_metadata = {
+ metadata.name: metadata for metadata in filtered_metadata
+ }
+ return list(deduplicated_metadata.values())
def get_name_value_default_list(self) -> list[tuple[str, str, bool]]:
name_value_default_list = [
(nvpair_dto.name, nvpair_dto.value, False)
- for nvpair_dto in self._name_nvpair_dto_map.values()
+ for nvpair_dto in self._first_nvpair_set
]
name_value_default_list.extend(
[
(metadata_dto.name, metadata_dto.default, True)
- for metadata_dto in self._properties_metadata
+ for metadata_dto in self.get_properties_metadata(
+ include_advanced=True
+ )
if metadata_dto.name not in self._name_nvpair_dto_map
and metadata_dto.default is not None
]
diff --git a/pcs_test/tier0/cli/cluster_property/test_command.py b/pcs_test/tier0/cli/cluster_property/test_command.py
index b54d0e58..f8cc2afa 100644
--- a/pcs_test/tier0/cli/cluster_property/test_command.py
+++ b/pcs_test/tier0/cli/cluster_property/test_command.py
@@ -21,6 +21,21 @@ from pcs_test.tools.misc import dict_to_modifiers
FIXTURE_PROPERTY_METADATA = ClusterPropertyMetadataDto(
properties_metadata=[
+ ResourceAgentParameterDto(
+ name="property_name",
+ shortdesc="Duplicate property",
+ longdesc=None,
+ type="string",
+ default="duplicate_default",
+ enum_values=None,
+ required=False,
+ advanced=False,
+ deprecated=False,
+ deprecated_by=[],
+ deprecated_desc=None,
+ unique_group=None,
+ reloadable=False,
+ ),
ResourceAgentParameterDto(
name="property_name",
shortdesc=None,
diff --git a/pcs_test/tier0/cli/cluster_property/test_output.py b/pcs_test/tier0/cli/cluster_property/test_output.py
index 0ce8f6a8..59d33466 100644
--- a/pcs_test/tier0/cli/cluster_property/test_output.py
+++ b/pcs_test/tier0/cli/cluster_property/test_output.py
@@ -21,6 +21,7 @@ FIXTURE_TWO_PROPERTY_SETS = [
CibNvpairDto(id="", name="readonly2", value="ro_val2"),
CibNvpairDto(id="", name="property2", value="val2"),
CibNvpairDto(id="", name="property1", value="val1"),
+ CibNvpairDto(id="", name="property1", value="duplicate_val1"),
],
),
CibNvsetDto(
@@ -39,6 +40,7 @@ FIXTURE_READONLY_PROPERTIES_LIST = ["readonly1", "readonly2"]
FIXTURE_TEXT_OUTPUT_FIRST_SET = dedent(
"""\
Cluster Properties: id1 score=150
+ property1=duplicate_val1
property1=val1
property2=val2
readonly1=ro_val1
@@ -75,6 +77,7 @@ def fixture_property_metadata(
FIXTURE_PROPERTY_METADATA_LIST = [
+ fixture_property_metadata(name="property1", default="duplicate_default1"),
fixture_property_metadata(name="property1", default="default1"),
fixture_property_metadata(name="property2", default="default2"),
fixture_property_metadata(
@@ -136,7 +139,7 @@ class TestPropertyConfigurationFacadeGetPropertyValue(TestCase):
)
def test_property_value_from_first_set(self):
- self.assertEqual(self.facade.get_property_value("property1"), "val1")
+ self.assertEqual(self.facade.get_property_value("property2"), "val2")
def test_property_value_from_second_set(self):
self.assertEqual(self.facade.get_property_value("property3"), None)
@@ -152,6 +155,11 @@ class TestPropertyConfigurationFacadeGetPropertyValue(TestCase):
"custom",
)
+ def test_property_with_multiple_values(self):
+ self.assertEqual(
+ self.facade.get_property_value("property1"), "duplicate_val1"
+ )
+
class TestPropertyConfigurationFacadeGetPropertyValueOrDefault(TestCase):
def setUp(self):
@@ -163,7 +171,7 @@ class TestPropertyConfigurationFacadeGetPropertyValueOrDefault(TestCase):
def test_property_value_from_first_set(self):
self.assertEqual(
- self.facade.get_property_value_or_default("property1"), "val1"
+ self.facade.get_property_value_or_default("property2"), "val2"
)
def test_property_value_not_in_set(self):
@@ -239,21 +247,22 @@ class TestPropertyConfigurationFacadeGetPropertiesMetadata(TestCase):
)
def test_metadata_without_advanced(self):
- metadata = FIXTURE_PROPERTY_METADATA_LIST[0:2]
- self.assertEqual(self.facade.get_properties_metadata(), metadata)
+ metadata = FIXTURE_PROPERTY_METADATA_LIST[1:3]
+ self.assertCountEqual(self.facade.get_properties_metadata(), metadata)
def test_metadata_with_advanced(self):
- metadata = FIXTURE_PROPERTY_METADATA_LIST
- self.assertEqual(
- self.facade.get_properties_metadata(include_advanced=True), metadata
+ metadata = FIXTURE_PROPERTY_METADATA_LIST[1:]
+ self.assertCountEqual(
+ self.facade.get_properties_metadata(include_advanced=True),
+ metadata,
)
def test_metadata_specified(self):
metadata = (
- FIXTURE_PROPERTY_METADATA_LIST[0:1]
+ FIXTURE_PROPERTY_METADATA_LIST[1:2]
+ FIXTURE_PROPERTY_METADATA_LIST[-1:]
)
- self.assertEqual(
+ self.assertCountEqual(
self.facade.get_properties_metadata(
property_names=["property4", "property1"]
),
@@ -275,6 +284,7 @@ class TestPropertyConfigurationFacadeGetNameValueDefaultList(TestCase):
("readonly2", "ro_val2", False),
("property2", "val2", False),
("property1", "val1", False),
+ ("property1", "duplicate_val1", False),
("property3", "default3", True),
("property4", "default4", True),
]
@@ -503,7 +513,8 @@ class TestPropertiesToCmd(TestCase):
"""\
pcs property set --force -- \\
property2=val2 \\
- property1=val1
+ property1=val1 \\
+ property1=duplicate_val1
"""
)
self.assert_lines(facade, output)
diff --git a/pcs_test/tier0/lib/commands/test_cluster_property.py b/pcs_test/tier0/lib/commands/test_cluster_property.py
index c7cb7ae5..c02761a0 100644
--- a/pcs_test/tier0/lib/commands/test_cluster_property.py
+++ b/pcs_test/tier0/lib/commands/test_cluster_property.py
@@ -911,6 +911,10 @@ class TestGetProperties(TestCase):
)
self.env_assist.assert_reports([])
+ @mock.patch(
+ "pcs.lib.cib.rule.in_effect.has_rule_in_effect_status_tool",
+ lambda: True,
+ )
def test_evaluate_expired_but_no_set_rule(self):
self.config.runner.cib.load(
crm_config=fixture_crm_config_properties([("set_id", {})])
@@ -924,6 +928,30 @@ class TestGetProperties(TestCase):
),
)
+ @mock.patch(
+ "pcs.lib.cib.rule.in_effect.has_rule_in_effect_status_tool",
+ lambda: False,
+ )
+ def test_evaluate_expired_no_status_tool(self):
+ self.config.runner.cib.load(
+ crm_config=fixture_crm_config_properties([("set_id", {})])
+ )
+ self.assertEqual(
+ self.command(evaluate_expired=True),
+ ListCibNvsetDto(
+ nvsets=[
+ CibNvsetDto(id="set_id", options={}, rule=None, nvpairs=[])
+ ]
+ ),
+ )
+ self.env_assist.assert_reports(
+ [
+ fixture.warn(
+ reports.codes.RULE_IN_EFFECT_STATUS_DETECTION_NOT_SUPPORTED,
+ )
+ ]
+ )
+
class TestGetPropertiesMetadata(MetadataErrorMixin, TestCase):
_load_cib_when_metadata_error = False
--
2.41.0

View File

@ -1,55 +0,0 @@
From e47799cbdd588649872efd24d6bcfa78acb23ecb Mon Sep 17 00:00:00 2001
From: Tomas Jelinek <tojeline@redhat.com>
Date: Tue, 11 Jul 2023 14:09:17 +0200
Subject: [PATCH 3/3] use a filter when extracting a config backup tarball
---
pcs/config.py | 26 ++++++++++++++++++++++++--
1 file changed, 24 insertions(+), 2 deletions(-)
diff --git a/pcs/config.py b/pcs/config.py
index 56c49aae..d750f52f 100644
--- a/pcs/config.py
+++ b/pcs/config.py
@@ -488,14 +488,36 @@ def config_restore_local(infile_name, infile_obj):
if "rename" in extract_info and extract_info["rename"]:
if tmp_dir is None:
tmp_dir = tempfile.mkdtemp()
- tarball.extractall(tmp_dir, [tar_member_info])
+ if hasattr(tarfile, "data_filter"):
+ # Safe way of extraction is available since Python 3.12,
+ # hasattr above checks if it's available.
+ # It's also backported to 3.11.4, 3.10.12, 3.9.17.
+ # It may be backported to older versions in downstream.
+ tarball.extractall(
+ tmp_dir, [tar_member_info], filter="data"
+ )
+ else:
+ # Unsafe way of extraction
+ # Remove once we don't support Python 3.8 and older
+ tarball.extractall(tmp_dir, [tar_member_info])
path_full = extract_info["path"]
shutil.move(
os.path.join(tmp_dir, tar_member_info.name), path_full
)
else:
dir_path = os.path.dirname(extract_info["path"])
- tarball.extractall(dir_path, [tar_member_info])
+ if hasattr(tarfile, "data_filter"):
+ # Safe way of extraction is available since Python 3.12,
+ # hasattr above checks if it's available.
+ # It's also backported to 3.11.4, 3.10.12, 3.9.17.
+ # It may be backported to older versions in downstream.
+ tarball.extractall(
+ dir_path, [tar_member_info], filter="data"
+ )
+ else:
+ # Unsafe way of extracting
+ # Remove once we don't support Python 3.8 and older
+ tarball.extractall(dir_path, [tar_member_info])
path_full = os.path.join(dir_path, tar_member_info.name)
file_attrs = extract_info["attrs"]
os.chmod(path_full, file_attrs["mode"])
--
2.41.0

View File

@ -1,53 +0,0 @@
From 074e24f039a5bdfa81d17feb390dd342eda5ba73 Mon Sep 17 00:00:00 2001
From: Ivan Devat <idevat@redhat.com>
Date: Fri, 14 Jul 2023 14:44:20 +0200
Subject: [PATCH] fix assets url (relative -> absolute)
---
.bin/build.sh | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
diff --git a/.bin/build.sh b/.bin/build.sh
index 2113eaae..c7f0b4a0 100755
--- a/.bin/build.sh
+++ b/.bin/build.sh
@@ -74,10 +74,15 @@ inject_built_assets() {
}
fix_asset_paths() {
- # All assets in index.html uses absolute path. This function makes them
- # relative. The index.html is also used by development server which needs
- # absolute paths. There is no copy/edit phase in development server, so it is
- # done here.
+ # All assets in index.html uses absolute path. The index.html is also used by
+ # development server which needs absolute paths. There is no copy/edit phase
+ # in development server, so it is done here.
+ # Here is the absolute path prefixed according to pcsd url namespace for
+ # webui.
+ # WARNING: Don't use relative path. It works well in dashboard but in the
+ # cluster detail the resulting url contains word "cluster" inside, so instead
+ # of "/ui/static/..." we get "/ui/cluster/static" and asset loading fails.
+ # see: https://bugzilla.redhat.com/show_bug.cgi?id=2222788
html=$1
path_prefix=$2
js_path="$3/"
@@ -130,6 +135,7 @@ adapt_for_environment() {
}
use_current_node_modules=${BUILD_USE_CURRENT_NODE_MODULES:-"false"}
+url_prefix=${PCSD_BUILD_URL_PREFIX:-"/ui"}
node_modules=$(get_path "appNodeModules")
node_modules_backup="${node_modules}.build-backup"
export BUILD_DIR="${BUILD_DIR:-$(realpath "$(dirname "$0")"/../build)}"
@@ -155,7 +161,7 @@ adapt_for_environment \
static/js/adapterCockpit.js \
"${PCSD_UINIX_SOCKET:-"/var/run/pcsd.socket"}"
-fix_asset_paths "$BUILD_DIR"/index.html "." \
+fix_asset_paths "$BUILD_DIR"/index.html "$url_prefix" \
static/js \
static/css \
manifest.json \
--
2.41.0

View File

@ -0,0 +1,25 @@
From bbc3970d2425f403593374a4372c890fbaa04f3f Mon Sep 17 00:00:00 2001
From: Tomas Jelinek <tojeline@redhat.com>
Date: Wed, 22 Nov 2023 10:02:45 +0100
Subject: [PATCH] daemon: fix serving static files
---
pcs/daemon/app/ui.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pcs/daemon/app/ui.py b/pcs/daemon/app/ui.py
index d839f2c8..eaf6f54f 100644
--- a/pcs/daemon/app/ui.py
+++ b/pcs/daemon/app/ui.py
@@ -102,7 +102,7 @@ class StaticFileMayBe(StaticFile):
# spa is probably not installed
self.set_status(404, "Not Found")
return None
- return super().get(*args, **kwargs)
+ return await super().get(*args, **kwargs)
def get_routes(
--
2.41.0

View File

@ -1,4 +1,4 @@
From 948eb79f2f4057ac8143242b29e8c164ee4516ed Mon Sep 17 00:00:00 2001
From 9848d882dbb050bf9bfb4a4582a921757c0119da Mon Sep 17 00:00:00 2001
From: Ivan Devat <idevat@redhat.com>
Date: Tue, 20 Nov 2018 15:03:56 +0100
Subject: [PATCH] do not support cluster setup with udp(u) transport in RHEL9
@ -9,7 +9,7 @@ Subject: [PATCH] do not support cluster setup with udp(u) transport in RHEL9
2 files changed, 3 insertions(+)
diff --git a/pcs/pcs.8.in b/pcs/pcs.8.in
index 2baf0009..9b2f7388 100644
index 55f4b4a9..8cc9360d 100644
--- a/pcs/pcs.8.in
+++ b/pcs/pcs.8.in
@@ -479,6 +479,8 @@ By default, encryption is enabled with cipher=aes256 and hash=sha256. To disable
@ -22,10 +22,10 @@ index 2baf0009..9b2f7388 100644
.br
Transport options are: ip_version, netmtu
diff --git a/pcs/usage.py b/pcs/usage.py
index df149e5b..c915b513 100644
index cc6c5803..a7d4b24b 100644
--- a/pcs/usage.py
+++ b/pcs/usage.py
@@ -1486,6 +1486,7 @@ Commands:
@@ -1482,6 +1482,7 @@ Commands:
hash=sha256. To disable encryption, set cipher=none and hash=none.
Transports udp and udpu:

View File

@ -0,0 +1,30 @@
From 3f1bc69cc8394f2748d50b7c4e1d5fc57d825246 Mon Sep 17 00:00:00 2001
From: Ivan Devat <idevat@redhat.com>
Date: Thu, 23 Nov 2023 09:38:45 +0100
Subject: [PATCH] fix routing of web-ui manifest*.json files
---
pcs/daemon/app/ui.py | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/pcs/daemon/app/ui.py b/pcs/daemon/app/ui.py
index eaf6f54f..f375806d 100644
--- a/pcs/daemon/app/ui.py
+++ b/pcs/daemon/app/ui.py
@@ -127,7 +127,12 @@ def get_routes(
return [
(f"{url_prefix}static/(.*)", StaticFileMayBe, static_path("static")),
- (f"{url_prefix}manifest.json", StaticFileMayBe, static_path()),
+ (f"{url_prefix}(manifest\\.json)", StaticFileMayBe, static_path()),
+ (
+ f"{url_prefix}(manifest_test_marks\\.json)",
+ StaticFileMayBe,
+ static_path(),
+ ),
(
f"{url_prefix}login",
Login,
--
2.41.0

View File

@ -26,7 +26,7 @@ prepare:
package: dnf-command(config-manager)
- name: Enable HA repo
how: shell
script: dnf config-manager --set-enabled highavailability crb
script: dnf config-manager --set-enabled highavailability crb || true
- name: Install packages
how: install
package:

View File

@ -0,0 +1,32 @@
From b07e80dcef2642b8bbfaa4baf01983b9f9ed1982 Mon Sep 17 00:00:00 2001
From: Michal Pospisil <mpospisi@redhat.com>
Date: Wed, 22 Nov 2023 17:38:24 +0100
Subject: [PATCH] login: fix autocomplete attribute placement
---
packages/app/src/app/view/app/login/LoginForm.tsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/packages/app/src/app/view/app/login/LoginForm.tsx b/packages/app/src/app/view/app/login/LoginForm.tsx
index e3d2e2c0..7d7781b5 100644
--- a/packages/app/src/app/view/app/login/LoginForm.tsx
+++ b/packages/app/src/app/view/app/login/LoginForm.tsx
@@ -39,7 +39,6 @@ export const LoginForm = (props: {
name="pf-login-username-id"
value={props.usernameValue}
onChange={props.onChangeUsername}
- autoComplete="off"
{...form.username.mark}
/>
</FormGroup>
@@ -57,6 +56,7 @@ export const LoginForm = (props: {
validated="default"
value={props.passwordValue}
onChange={props.onChangePassword}
+ autoComplete="off"
{...form.password.mark}
/>
</FormGroup>
--
2.41.0

View File

@ -1,6 +1,6 @@
Name: pcs
Version: 0.11.6
Release: 4%{?dist}
Release: 6%{?dist}
# https://docs.fedoraproject.org/en-US/packaging-guidelines/LicensingGuidelines/
# https://fedoraproject.org/wiki/Licensing:Main?rd=Licensing#Good_Licenses
# GPL-2.0-only: pcs
@ -19,33 +19,33 @@ Summary: Pacemaker/Corosync Configuration System
ExclusiveArch: i686 x86_64 s390x ppc64le aarch64
# When specifying a commit, use its long hash
%global version_or_commit %{version}
# %%global version_or_commit 3e479bdb68dc900523a743e7dcb759b501385555
# %%global version_or_commit %%{version}
%global version_or_commit aaa16e0de986890e6ca3038f907bbad331e41a87
%global pcs_source_name %{name}-%{version_or_commit}
# ui_commit can be determined by hash, tag or branch
%global ui_commit 0.1.17
%global ui_modules_version 0.1.17
%global ui_commit 0.1.18
%global ui_modules_version 0.1.18
%global ui_src_name pcs-web-ui-%{ui_commit}
%global pcs_snmp_pkg_name pcs-snmp
%global pyagentx_version 0.4.pcs.2
%global tornado_version 6.3.2
%global tornado_version 6.3.3
%global dacite_version 1.8.1
%global version_rubygem_backports 3.24.1
%global version_rubygem_childprocess 4.1.0
%global version_rubygem_ethon 0.16.0
%global version_rubygem_ffi 1.15.5
%global version_rubygem_ffi 1.16.3
%global version_rubygem_mustermann 3.0.0
%global version_rubygem_nio4r 2.5.9
%global version_rubygem_puma 6.3.0
%global version_rubygem_rack 2.2.7
%global version_rubygem_rack_protection 3.0.6
%global version_rubygem_puma 6.4.0
%global version_rubygem_rack 2.2.8
%global version_rubygem_rack_protection 3.1.0
%global version_rubygem_rack_test 2.1.0
%global version_rubygem_ruby2_keywords 0.0.5
%global version_rubygem_sinatra 3.0.6
%global version_rubygem_tilt 2.2.0
%global version_rubygem_sinatra 3.1.0
%global version_rubygem_tilt 2.3.0
%global required_pacemaker_version 2.1.0
@ -101,13 +101,12 @@ Source101: https://github.com/ClusterLabs/pcs-web-ui/releases/download/%{ui_comm
# pcs patches: <= 200
# Patch0: bzNUMBER-01-name.patch
Patch0: do-not-support-cluster-setup-with-udp-u-transport.patch
Patch1: bz2163953-01-constraint-fixes.patch
Patch2: bz2217850-01-fix-exporting-location-constraints-with-rules.patch
Patch3: bz2219407-01-use-a-filter-when-extracting-a-config-backup-tarball.patch
Patch1: daemon-fix-serving-static-files.patch
Patch2: fix-routing-of-web-ui-manifest-files.patch
# ui patches: >200
# Patch201: bzNUMBER-01-name.patch
Patch201: bz2222788-01-fix-assets-url-relative-absolute.patch
Patch201: login-fix-autocomplete-attribute-placement.patch
# git for patches
BuildRequires: git-core
@ -300,7 +299,6 @@ update_times_patch %{PATCH201}
update_times_patch %{PATCH0}
update_times_patch %{PATCH1}
update_times_patch %{PATCH2}
update_times_patch %{PATCH3}
# generate .tarball-version if building from an untagged commit, not a released version
# autogen uses git-version-gen which uses .tarball-version for generating version number
@ -342,7 +340,10 @@ update_times_patch %{PATCH3}
%define debug_package %{nil}
./autogen.sh
%{configure} --enable-local-build --enable-use-local-cache-only --enable-individual-bundling --enable-booth-enable-authfile-set --enable-booth-enable-authfile-unset PYTHON=%{__python3} ruby_CFLAGS="%{optflags}" ruby_LIBS="%{build_ldflags}"
%{configure} --enable-local-build --enable-use-local-cache-only \
--enable-individual-bundling --with-pcsd-default-cipherlist='PROFILE=SYSTEM' \
--enable-booth-enable-authfile-unset --enable-booth-enable-authfile-set \
PYTHON=%{__python3} ruby_CFLAGS="%{optflags}" ruby_LIBS="%{build_ldflags}"
make all
# build pcs-web-ui
@ -354,6 +355,10 @@ pwd
%make_install
# RHEL-7716 - fix rubygem permissions - remove write access for owner's group
# and other users
chmod --recursive g-w,o-w ${RPM_BUILD_ROOT}%{_libdir}/%{rubygem_bundle_dir}
# install pcs-web-ui
cp -r %{_builddir}/%{ui_src_name}/build ${RPM_BUILD_ROOT}%{_libdir}/%{pcsd_public_dir}/ui
@ -541,6 +546,18 @@ run_all_tests
%license pyagentx_LICENSE.txt
%changelog
* Mon Nov 13 2023 Michal Pospisil <mpospisi@redhat.com> - 0.11.6-6
- Rebased to the latest upstream sources (see CHANGELOG.md)
Resolves: RHEL-7582, RHEL-7583, RHEL-7669, RHEL-7672, RHEL-7697, RHEL-7698, RHEL-7700, RHEL-7703, RHEL-7719, RHEL-7725, RHEL-7730, RHEL-7738, RHEL-7739, RHEL-7740, RHEL-7744, RHEL-7746
- TLS cipher setting in pcsd now follows system-wide crypto policies by default
Resolves: RHEL-7724
- Tightened permissions of bundled rubygems to be 755 or stricter
Resolves: RHEL-7716
* Thu Nov 2 2023 Michal Pospisil <mpospisi@redhat.com> - 0.11.6-5
- No changes, fixing an error in a new quality control process
- Resolves: RHEL-15217
* Fri Oct 27 2023 Michal Pospisil <mpospisi@redhat.com> - 0.11.6-4
- No changes, testing a new quality control process
- Resolves: RHEL-15217

20
sources
View File

@ -1,19 +1,19 @@
SHA512 (pyagentx-0.4.pcs.2.tar.gz) = d4194fec9a3e5fefe3793d49b7fec1feafef294c7e613a06046c2993daeefc5cb39d7c5b2b402ff83e49b2d976953f862264288c758c0be09d997b5323cc558a
SHA512 (ffi-1.15.5.gem) = 074df34edffc7038ab08199350a97b32280d61ea15dd85d459b008bd3363ec5403b4e533621c8e460e5288f01fec944bff9b149851b819e85bab75ad2362227c
SHA512 (ruby2_keywords-0.0.5.gem) = f6b9078b111e68c0017e0025ecdccb976c7a32f35c1a8adf9fd879db0c91f89eb9bd799f9527a846e28056f2a5fbf0f3610cda9538570288c493613c35c83a6f
SHA512 (childprocess-4.1.0.gem) = e635c3acfa5ad85891c3879f240c7e96d47d7d5ec3f472f4ce6661552b0fb7bd72c5e3b9fb73f4f9312b749fbe554b4be388e56a31a3c63c39743d055d774def
SHA512 (mustermann-3.0.0.gem) = c33d41281fe2ac80c0af0c5c31dbab2068c73b9da19a4b82b387bbe551019fc115675634d932a8e56b070c3a06a85d830c982a103e6c5193aff8647f599be6e3
SHA512 (ethon-0.16.0.gem) = 3b31affcee0d5a5be05b5497d4a8d13515f8393f54579a3a9c8de49f78d3f065bb92659434b023f0a8bf8e0cccfbc94b617695b93c4d3f744cccd1eff2e68905
SHA512 (pcs-web-ui-0.1.17.tar.gz) = a5dd551c47040d9c9a2f714a83b835aaf5cca8d5dd05c83f641ddecdb7d99ac82a3b265df508c0ec1bc51ea572210d6255d79631f4680205c6302cb89460d14c
SHA512 (pcs-web-ui-node-modules-0.1.17.tar.xz) = 51f47be3b28a378542ebe862a333e8883bbcf4e40a2aea685986b9d17db91dab01cb3b58c9ffba56f335bedfe0a9477ebb1ff93824228ed5348f864afad5b98d
SHA512 (dacite-1.8.1.tar.gz) = 4b40c0bdcf5490bcc77de9e7f04b7267642bcfd41e4168607a5457f38abe3ad4b3041d8a23cb43af76de14eabee45f900ad5ddf7af8f70a2be4850bccc2d3af1
SHA512 (nio4r-2.5.9.gem) = d1c52896f186d19eb089a94d74ccadb427e64c204af149aa83a5a4dda3f0edd1bd2bae94afd21fcd58e3c2b9e2c17278a18717c0905de80e45540d13eeefd9e5
SHA512 (backports-3.24.1.gem) = b2eeb76ebf8ddfc7e349e125c6b9cffcabe3d184533579dbf2abb5f663ce85f4a6f8b01b67be4030c98f4782c63511046a1a1efa4d573a9aeb700dcbb9f9f566
SHA512 (rack-2.2.7.gem) = 81df6b9bbc417f0ddcfe4d3278c3b244ff355d876e6c982b8fdd648d37652034aa11a16baa02d152c8d110c3d2b19c96b81b38f680cb274e5155978d0c21f8be
SHA512 (rack-protection-3.0.6.gem) = 4763a0439a3d99cfd799325004c7e6cb46783b3fcd77ea0df08caa6b5cdfc95c6ec96791d79261a0d7df26eb0b084e7ead2cceb05b589617159e948b3172e564
SHA512 (rack-test-2.1.0.gem) = e349ce61c3d787e0a772980db697e92212d4d9592ce33f55516d1f85fba55cbe666496c76392679b057786d6dab603d74b83e7bb773ab54940343e36dbf05d6f
SHA512 (sinatra-3.0.6.gem) = 3eabaca09d7528fada3c24200014de67678b01a7d1bfe1141f0bad977ebd22eb0e57d286b1e445c2b2d657bcf4b9ff7d2dd06ad3d3b7376c30043dc9961f2856
SHA512 (tornado-6.3.2.tar.gz) = dc0ad9b4c0b5597970fd43a577bb9a0883523125cf4e9780f9338431aab1014cb6fc0dda4f3deb3050df657b5acf277cc146ec2195b91154299109ff07482a5c
SHA512 (tilt-2.2.0.gem) = fd3e01dc58d2a1fb884c9212e6fd3291dcc710b906d23fc86af93d29f1bb2a94edbd5819d8fa91e6184fc2359392a9eb7cbdcdbebd215dacc857a1586500dfc6
SHA512 (puma-6.3.0.gem) = a4bbc965f19a8795e87f7f2cacaf5b63167284f31207dcfb6df6a61d0d1e585d782f0e2fc4155327124163875e2f9fed98eed24d497bc5f79dfbf0be3f16a564
SHA512 (pcs-0.11.6.tar.gz) = 0a1508d71c17952c3d40c40147cfa05643c34fcdd162603dd6d6c02fd4c6add1e691e3412636875fc6a75f7c533e6867328acc44713752b59d237f866c90f050
SHA512 (ffi-1.16.3.gem) = b3d823a03055412a85ae3dbc10c3b50615614f0b66830e144ca47610b1f93f588ff693a95d364b4f686968b79bba91f9f9fa60b932479c6bf9ceb10e15575b98
SHA512 (puma-6.4.0.gem) = 3f481bd2bd34ed0d66d86f61d7522a48b4d8bfd36b807a1c47bb3b640bc6050a72f4f710fd4fad16260b560f98050e34faad044a54cb759c7ffe8371c3548c18
SHA512 (rack-2.2.8.gem) = 8d12f6ce307f0474529218086c25d9f043b7787c65fab919bf9d706c00b3d61e2460e2fef02134e6e76b721b97cc86d80fa1a22d8adda89b19fc29b21694c15d
SHA512 (rack-protection-3.1.0.gem) = 18a5ffe614a906ca876926bff3e4d1657f0b6963005ee32de80d0ab987b9465f603b30d69f07fd8d8a1ebf4fa85eb89bfd0b607d72387b360d13bea113a63ef7
SHA512 (sinatra-3.1.0.gem) = e2b1f72f6ac57ce56006b6c39c72bec8135a448b2b235d6fd061fe3d02bd32b6bd8521c8083975e2ec758b8ba9634d6bc2e90b0f5ffae954437ffb26f808b50b
SHA512 (tilt-2.3.0.gem) = 78a3de34e3d096e40cb245807bad07cc3ebfa192986addbd228c25153166808b379f3ce086ff68fa5959997946187fe8923e84100653b2b109007390969875b3
SHA512 (tornado-6.3.3.tar.gz) = d4813de111139da2f5bd390bdd8d456797a48ba2ebe730946aabd66d9269ce4425d9b70ce62aa443ea5590d667b9056766841d99dcb0f383b2c9acd409474c8d
SHA512 (pcs-aaa16e0de986890e6ca3038f907bbad331e41a87.tar.gz) = 582a644e7f39902ccb08b64d8c66716f3f98eee98d683ce91ba311ba5134175d44143aecb917b978c1e91ff976701460b7f44d89ef444335707e071591709013
SHA512 (pcs-web-ui-0.1.18.tar.gz) = 3c7c90608a2140d366668943e2985267519b9352ab7843b689f3583a577873a292e9746820278fdedba3f6981ca16926a5656d7b7a78c6546c9a7ebb0a396436
SHA512 (pcs-web-ui-node-modules-0.1.18.tar.xz) = 237ff976d67a7bf881e45334261af1da32c6330fbf9e7436dcf33e63c9373f85f36db52622676f77e27bb6a853c046223cfe0cca25de68bd004c6535aa077fd7