- Rebased pcs to the newest major version (see CHANGELOG.md)
Resolves: rhbz#2371770
- Updated standalone web UI and HA Cluster Management Cockpit application to pcs-web-ui 0.1.23 (see CHANGELOG_WUI.md)
- There is now a changelog for the HA Cluster Management Cockpit application and the standalone web UI in both packages
- Updated bundled Python dependency dacite
The original goal was to report the pcs-web-ui upstream version through
rpm to simplify reporting bugs upstream because subpackages inherit the
pcs version from the main package.
When pcs-web-ui is built from unreleased version, I needed a mechanism
to include the git revision in the version string. This mechanism
already existed for generating .tarball-version. I didn't want to
duplicate the code so I moved it to a macro. With this approach I was
also able to simplify conditions for generating .tarball-version file.
On top of that, as I was adding the new tarball_version macro, I noticed
that the if conditions could be simplified by updating the existing
variables instead of using the else branch.
The switch alters the test suite behavior - we want it enabled since we
want pcsd to support webui in standalone mode if the user chooses to
install pcs-web-ui package.
Pcs-web-ui added a changelog upstream, so I'm adding it downstream as
well. It turns out that I forgot to package the readme and license
before, so adding them too. In Fedora, I have to copy the files to the
cockpit package and pcs-web-ui package since they both include the
pcs-web-ui upstream code.
For pcs, readme and changelog are installed via automake variable
`dist_doc_DATA` [1] which gets automatically converted to its own target
ran during `make install`. The target installs it to %docdir/%TARNAME
(automake variables). This happens to align with RPM default of
%_docdir/%name (spec macros). This is rendered completely useless as
these later get replaced by RPM anyway. The path is therefore
/usr/share/doc/pcs.
RPM %doc directive has two modes. If there is a relative path, the %doc
directive runs a script that goes into builddir/BUILD/<Source0> and
copies the file to %_docdir. If there is an absolute path, the file is
only marked as a doc file in the RPM database. The same goes for
%license directive, except for it getting copied to %_defaultlicensedir.
[2][3]
The problem arises for pcs-web-ui files as they neither come from the
pcs tarball nor are to be owned by the pcs package. Additionally, the
package name changes for different downstreams. Because the package name
changes, it is not desirable to install the files in the upstream
Makefile which is not aware of RPM package names. I made a decision to
handle file copying entirely in the specfile for these reasons. It seems
like for relative paths, RPM searches the Source0 tarball, but ours are
located in Source100. Therefore, I explicitly used %_docdir and
%_defaultlicensedir in %install and %files.
[1]: https://www.gnu.org/software/automake/manual/html_node/amhello_0027s-Makefile_002eam-Setup-Explained.html
[2]: https://docs.fedoraproject.org/en-US/packaging-guidelines/LicensingGuidelines/
[3]: https://web.archive.org/web/20160927094629/https://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch09s05s03.html
This fixes commit 825b175. Dnf5 cannot resolve the rpm name for some
reason. Switching to virtual provides rubygem(rack) instead of
rubygem-rack solves the issue. As a troubleshooting attempt, I also
tried a different approach to declaring the dependency with "and" and
"or". This provides a more complete picture and is less hacky than the
if boolean dependency [1].
This might have something to do with how provides are defined:
rpm -qP -p ./rubygem-rack-3.1.16-1.fc43.noarch.rpm
rubygem(rack) = 3.1.16
rubygem-rack = 1:3.1.16-1.fc43
[1] https://rpm-software-management.github.io/rpm/manual/boolean_dependencies.html
Since rack 3, rack handlers were moved to a new gem called rackup. As
a part of update to rack 3 in Fedora, a new package rubygem-rackup is
included [1]. No upstream changes are needed, we already have a
mechanism to require rackup when rack >= 3.
Resolves: rhbz#2372462
[1] https://bugzilla.redhat.com/show_bug.cgi?id=2338474
Resolves: rhbz#2341012
- New subpackage pcs-web-ui - enables standalone web UI when the subpackage is installed on the system (default), uninstall the subpackage to disable the web UI
- Updated standalone web UI and HA Cluster Management Cockpit application to pcs-web-ui 0.1.22
- Fixes for compatibility with Ruby 3.4
Resolves: rhbz#2331005
- Support tilde in version - for correct sorting of prerelease upstream version by RPM - %{version} expands with the tilde, use %{clean_version} to get upstream version
- Added pkgconfig file for pcs
- Added previously omitted autotools as build dependencies
- Changed BuildRequires for cluster stack components to use pkgconfig virtual provides to prevent breakage if pkgconfig is ever moved to a different package
- Removed BuildRequires: nodejs-npm from main package and fixed the name in cockpit-ha-cluster subpackage - the idea is that BuildRequires become Requires of the srpm which are then used during the main build phase when subpackages are built (so BuildRequires are effectively inherited by this logic)
- Removed Requires: python3-setuptools. With overhauled setup, new setuptools create entrypoints that do not import setuptools.
- Removed Requires: rubygem-rack-test - this is a build requirement.
- Improved BuildRequires for systemd scriptlet macros according to packaging guidelines
- Replaced ${RPM_BUILD_ROOT} in favor of %buildroot to match the upstream spec
- Revamped and unified tarball version management between pcs and pcs-web-ui - version numbers are needed for untagged releases, as git-version-gen takes the version from a git tag present in official released tarballs. To build an unreleased version of pcs, a commit hash is declared in a macro and .tarball-version is generated from rpm version and the hash. For tagged releases, .tarball-version is not generated but rpm version is used for file names and such. Pcs-web-ui uses a different version than pcs, so the rpm version cannot be used. Instead, pcs-web-ui version always has to be declared in the spec file anyway, so it will now serve as the fallback version for generating the .tarball-version for pcs-web-ui.
- Added BuildRequires: pkgconf as autotools need to process pc files from cluster packages
- Removal of all %post macros for all subpackages, because these are run automatically by systemd via %filetriggerin [1]. The need to restart is from now on indicated by running %posttrans systemd macros which set restart markers, see systemd 248 release notes [2]. This is implementation of a Fedora change proposal [3]. There are %posttrans and %postun macros for pcs-web-ui subpackage since pcsd needs to be restarted to start/stop providing webui or update webui on its installation/update/uninstall.
- The path to webui_public_dir passed to pcs-web-ui autotools is hardcoded. The pcs.pc file is not available since pcs is built in the same SRPM. It is not possible to get the path from compiled pc file after running configure from pcs because the %files section is not shell interpreted. It only accepts RPM macros which are replaced by the preprocessor before pcs is compiled. Technically, %files accept a file with paths and pkg-config could be run manually after pcs is compiled outputiing the directory to a temporary file. This hack is too ugly. Another solution would be to hardcode the paths both to pcs and ps-web-ui via autotools. This however doesn;t change the structure of the pcs tarball and is not safe either.
- Stopped using sbindir macro due to: https://fedoraproject.org/wiki/Changes/Unify_bin_and_sbin
[1] 1ffa7bf7c7/f/triggers.systemd
[2] https://github.com/systemd/systemd/blob/v248-rc1/NEWS#L360
[3] https://fedoraproject.org/wiki/Changes/Restart_services_at_end_of_rpm_transaction
Changes to builddir structure in RPM 4.20 broke the old script for
patching sources. Luckily, we can now patch sources with tmt.
Gone is also list of packages needed for testing,
build dependencies will be installed by tmt instead.
Name of the gating plan was changed to remove confusion with
gating.yaml. The prepare script was also renamed to better reflect what
it does.
The prepare script should be run in prepare, but TMT_SOURCE_DIR doesn't
exist in that step yet. The workaround is to run the prepre script
before every test to allow for running all tests by itself. However, the
script can only run once because it removes pcs folder which breaks
autotools. This is done by creating a stamp file that prevents the
script from running if it already ran.
The %eln macro should only be used where absolutely necessary and with
approval from ELN SIG. ELN builds also define the %rhel macro, set to the
next version to be branched, which covers almost all cases. Fedora 38 is
EOL, so there is no further need to conditionalize for it.
- Rebased to the latest upstream sources (see CHANGELOG.md)
- Updated pcs-web-ui to 0.1.18
- TLS cipher setting in pcsd now follows system-wide crypto policies by default
- Added cockpit-pcs-web-ui subpackage that adds pcs-web-ui as a Cockpit application
- Removed BuildRequires: python3-distro - was used to bundle dateutil
- Replaced STI tests with fmf tests for gating
- Change to prepare-env.sh script for rpm 4.19+ that creates SPECPARTS
directories
- Workaround used for distro in autotools
- Rebased to the latest upstream sources (see CHANGELOG.md)
- Updated pcs-web-ui
- Removed dependency fedora-logos - favicon is now correctly provided by pcs-web-ui
- Fix displaying differences between configuration checkpoints in “pcs config checkpoint diff” command
- Fix “pcs stonith update-scsi-devices” command which was broken since Pacemaker-2.1.5-rc1
- Fixed loading of cluster status in the web interface when fencing levels are configured
- Fixed a vulnerability in pcs-web-ui-node-modules
- Swapped BuildRequires: npm for BuildRequires: nodejs-npm in Fedora 37 because of NodeJS packaging change
- Removed BuildRequires: rubygem-io-console
- Removed dependency rubygem-eventmachine
- Rebased to the latest upstream sources (see CHANGELOG.md)
- Fixed broken filtering in create resource/fence device wizards in the web interface
- Converted package to noarch
- Added creation of .tarball-version file needed by autotools when building from untagged commits and fixed Source0 link to the tarball on GitHub
- Modified build options of pcs for booth authfile fix for all Fedora versions
- Added BuildRequires: pam for tier0 tests during build
- Added BuildRequires: nodejs-npm for NodeJS packaging change since Fedora 38
- Removed bundled rubygem thin and its associated BuildRequires: rubygems, rubygem-bundler, rubygem-daemons, gcc, gcc-c++
- Added dependency rubygem-puma - replacement for rubygem thin
- Added dependency nss-tools - for working with qdevice certificates
- Added dependency fedora-logos - for the web interface favicon
- Removed dependencies: rubygem-daemons, rubygem(webrick)
- Rebased to latest upstream sources (see CHANGELOG.md)
- Updated pcs-web-ui
- Bundle rubygem-sinatra, rubygem-thin and their dependencies because they were orphaned